2010-01-12 38 views
3

我有一個基於服務的體系結構,其中一個充滿asp客戶端的Web服務器羣擊中了WCF服務的應用程序服務器場。顯然,所有的數據庫訪問都是由WCF服務完成的。現在我想在服務層級使用Velocity緩存我經常使用的數據庫檢索對象。我正在考慮讓每個物理應用程序服務器也是緩存集羣的一部分。在Velocity/AppFabric中使用WCF緩存區域

根據Velocity文檔,如果我使用區域,對象只存儲在一個主機上。如果每個主機都保留它自己的緩存,我實際上不會有任何問題,前提是我可以以某種方式同步它們。

所以我的問題是

  1. 如果我在一臺主機上創建一個區域,它也一個又一個創造出來的?
  2. 當我清除緩存區域時,它是否僅在一臺主機上清除?
  3. 如果我訂閱所有主機上的區域級別通知,我是否可以在另一臺主機上捕獲一臺主機的事件?
  4. 在這種情況下,我應該使用區域還是遠離它們?

我希望我的問題很清楚。其實我更感興趣的是我的問題的解決方案,而不是我的問題的答案

回答

2

是的,你是正確的閱讀文檔,該地區將只存在於一個主機。

「如果每個主機都保留它自己的緩存,我實際上不會有任何問題,前提是我可以以某種方式同步它們。」

當你說同步時,你的意思是HA何時啓用?如果那是你的意思,速度實際上會照顧到。

對於問題: 1.編號 2.是 3.通知將發送到客戶端。所以我不確定是否有通知發送到其他主機。 4.區域提供搜索功能,並從您身上帶走HA。就你而言,你可以利用HA的優勢。

1

擁有區域不一定意味着您沒有HA。如果您創建自己的緩存(並且不使用「默認」緩存),則可以使用Secondarys = 1(HA on) 來創建它,現在讓我們假設您有4個緩存主機;當你定義一個區域時,它將同時擁有主要和輔助主機。所以在該地區的每個行動都會導致它在兩個方面都得到應用。

shany

1

命名緩存分佈在參與節點。命名區域位於單個節點上。區域可以是HA,但是它們不能充分利用分佈式緩存擴展,因爲它們的對象負載不會跨集羣中的參與節點進行分佈。另外,如果僅使用「默認」高速緩存,對HA使用命名高速緩存最少需要三個節點,而不是兩個節點。

+0

您是否有鏈接到引用此文檔的確切頁面? – Robs 2012-01-20 10:43:10

+1

http://msdn.microsoft.com/en-us/library/ee790985.aspx – Robs 2012-01-20 10:54:27