2010-06-10 38 views
9

Câu hỏi về cách tính năng bộ nhớ cache của AppFabric có thể được sử dụng.Câu hỏi về cách tính năng bộ nhớ cache của AppFabric có thể được sử dụng

Tôi xin lỗi vì đã đặt câu hỏi mà tôi có thể trả lời từ tài liệu, nhưng tôi đã đọc và đọc và tìm kiếm và không thể trả lời câu hỏi này, điều này khiến tôi tin rằng tôi có hiểu biết cơ bản về những gì AppFabric khả năng lưu trữ được dành cho.

Tôi làm việc cho một công ty phân tán theo địa lý. Chúng tôi có một ứng dụng cụ thể ban đầu được viết dưới dạng ứng dụng máy khách/máy chủ. Nó rất lớn và kinh doanh quan trọng mà chúng tôi muốn bước bé chuyển đổi nó thành một giải pháp tốt hơn.

Một trong những ý tưởng mà chúng tôi có là chuyển đổi ứng dụng để đọc dữ liệu của nó bằng cách sử dụng các cuộc gọi WCF đến một máy chủ web có vị trí sẽ liên lạc bộ nhớ cache với cơ sở dữ liệu ở Hoa Kỳ. Bản chất của ứng dụng là như vậy mà tất cả mọi người sẽ có xu hướng được xem cùng một bản ghi 2000 hoặc như vậy với chỉ cập nhật không thường xuyên và những cập nhật sẽ được thực hiện bởi một tập hợp hạn chế của người dùng. Tôi đã hy vọng rằng cơ chế bộ nhớ cache của AppFabric sẽ cho phép tôi thiết lập một bộ nhớ cache toàn cầu và khi một người dùng ở châu Á, ví dụ, yêu cầu dữ liệu không có trong bộ đệm hoặc đã cũ mà máy chủ web sẽ đọc từ cơ sở dữ liệu ở Hoa Kỳ, cung cấp dữ liệu cho người dùng, sau đó cập nhật bộ nhớ cache sẽ truyền dữ liệu đó đến các máy chủ web khác để họ biết sẽ không quay trở lại cơ sở dữ liệu.

AppFabric có thể hoạt động theo cách này hay tôi chỉ nên để máy chủ truy xuất dữ liệu của riêng mình từ cơ sở dữ liệu?

Trả lời

11

Vì vậy, nếu tôi hiểu bạn đúng, bạn có:

  • một máy chủ cơ sở dữ liệu trong các máy chủ web USA
  • khắp thế giới?
  • (khả năng) một bộ nhớ cache AppFabric ở Mỹ

AppFabric cung cấp cho bạn khả năng hai cách để giải quyết tình huống này.

  1. bộ nhớ cache Local
    Trong một thiết lập AppFabric, khách hàng có khả năng để có một bộ nhớ cache cục bộ của các đối tượng, nơi mà các cuộc gọi đầu tiên vào bộ nhớ cache cho một đối tượng đặt đối tượng trong bộ nhớ cache của địa phương và yêu cầu tiếp theo cho điều đó đối tượng được hoàn thành từ bộ nhớ cache cục bộ. Các đối tượng được loại bỏ khỏi bộ đệm cục bộ hoặc do hết thời gian chờ hoặc vì bộ nhớ cache chính thông báo cho bộ nhớ cache cục bộ rằng đối tượng đã cũ. Bạn định cấu hình điều này trong web.config:

    <dataCacheClient> 
        <localCache isEnabled="true" sync="NotificationBased" ttlValue="300" /> 
    </dataCacheClient> 
    

    Trong trường hợp này, máy chủ web của bạn là khách hàng; khi một trong những người dùng Châu Á của bạn yêu cầu một đối tượng, bộ nhớ cache cục bộ cho máy chủ web Châu Á sau đó sẽ giữ một bản sao của đối tượng đó. Các bản cập nhật cho đối tượng đó sẽ được truyền vào bộ đệm chính và trong một bản sao cài đặt thông báo của đối tượng đó trong bộ nhớ cache cục bộ trên các máy chủ web khác sẽ bị vô hiệu, để yêu cầu tiếp theo sẽ được hoàn thành từ bộ đệm chính và sau đó bộ đệm cục bộ sẽ được làm mới với đối tượng được cập nhật.

  2. Phân bổ bộ nhớ cache AppFabric trên máy chủ web
    Không có gì để ngăn máy chủ web của bạn cũng là máy chủ lưu trữ AppFabric! Trong thiết lập này, bạn sẽ không sử dụng bộ nhớ cache cục bộ, bởi vì nó không có ý nghĩa khi bộ nhớ cache chính đã được địa phương cho khách hàng của bạn.Tuy nhiên, điều này sẽ đảm bảo rằng khách hàng của bạn luôn kéo phiên bản mới nhất của một đối tượng được lưu trong bộ nhớ cache từ bộ nhớ cache. Tuy nhiên, bạn cần phải cẩn thận với tải mạng vì thiết lập này có nghĩa là máy chủ web ở Hoa Kỳ của bạn luôn đọc các đối tượng được lưu trong bộ nhớ cache từ máy chủ web Châu Âu của bạn, có thể làm chậm cả máy chủ của bạn khi chúng cố gắng phân phát yêu cầu bộ nhớ cache cũng như lưu lượng truy cập web.

Trong cả hai trường hợp, khách hàng của bạn sẽ nhận được phiên bản mới nhất của đối tượng được lưu trong bộ nhớ cache, bạn sẽ không cần phải ghi các thay đổi vào cơ sở dữ liệu. đối tượng được lưu trong bộ nhớ cache, nếu không bạn sẽ có nguy cơ đọc dữ liệu lỗi thời vào bộ nhớ cache.

+0

Phil, cảm ơn rất nhiều cho phản hồi (rất chi tiết) của bạn. Điều này giúp củng cố rất nhiều. –

+3

Microsoft không khuyên bạn nên sử dụng máy chủ không dành riêng cho các nút Bộ nhớ cache AppFabric, đặc biệt là các máy chủ IIS, do các vấn đề tranh chấp đang được tải. – andrewbadera

+1

"Các đối tượng được xóa khỏi bộ đệm cục bộ hoặc do hết thời gian chờ hoặc do bộ nhớ cache chính thông báo cho bộ nhớ cache cục bộ rằng đối tượng là cũ." - Tuy nhiên, bộ nhớ cache cục bộ liên hệ với bộ đệm chính dựa trên khoảng thời gian bỏ phiếu (300 giây theo mặc định). Bất kỳ thay đổi nào đối với một đối tượng trong bộ nhớ đệm chính giữa các cuộc thăm dò sẽ không được các bộ đệm cục bộ chọn, do đó chúng sẽ phát hành các bản sao trong một thời gian ngắn sau khi cập nhật bộ đệm chính. – redcalx

Các vấn đề liên quan