2011-01-20 201 views
6

我們剛剛測試,我們移除了「領導」服務器2臺服務器的集羣的AppFabric。第二個服務器超時的任何請求,它與錯誤:AppFabric的冗餘

Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0017>:SubStatus<ES0006>: There is a temporary failure. Please retry later. (One or more specified Cache servers are unavailable, which could be caused by busy network or servers. Ensure that security permission has been granted for this client account on the cluster and that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Retry later.)

在實踐的研究,這意味着,如果集羣中的一臺服務器出現故障,然後他們都去了。 (請注意,我們沒有使用Windows羣集,只有鏈接多個AppFabric的緩存服務器給對方。)

我需要羣集繼續甚至操作系統,如果一臺服務器出現故障。我該怎麼做呢?

(我知道這個問題是borderlining Serverfault,但恕我直言開發人員應該知道這一點。)

回答

7

你必須至少有三個領先服務器上安裝AppFabric的緩存緩存生存一臺服務器崩潰。該文檔指出集羣只會往下走,如果帶頭服務器的「多數」下去,但在印刷精美,他們解釋說,1出2構成多數。我已驗證從三個主節點羣集中刪除服務器的工作方式與所宣傳的一樣。

2

典型的分佈式系統的概念。對於在集合中發生的寫入或讀取法定數量,您需要有2f + 1個服務器,其中f是服務器失敗次數。我認爲appfabric或任何CP(如在CAP定理中)基於共識的系統都需要爲羣集的工作而發生這種情況。

--Sai

+0

什麼是2F + 1個公式 「次級」 的數量? – UserControl 2011-02-14 13:13:59

0

那實際上是與AppFabric的結構問題,它是在「領導 - 主機」理念方面相當混亂。這個想法是,大多數主導主機應該運行,以便集羣保持正常運行。所以,如果你有三臺服務器你必須至少有兩個領先的主機不斷地與對方溝通,吃了服務器資源,如果同時下去,那麼整個集羣出現故障。這個想法是建立一個對等體系結構,其中所有服務器都可以作爲對等體,這意味着即使兩臺服務器關閉,集羣仍然可以正常運行,而不會停止應用程序。嘗試了nCache:

http://www.alachisoft.com/ncache/