2011-01-20 20 views
6

「リード」サーバーを削除した2台のサーバーからなるAppFabricクラスターをテストしました。第二のサーバがエラーと、それへの要求に応じてタイムアウト:practiveので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.)

これは、クラスタ内の1台のサーバがダウンした場合、その後、彼らはすべてがダウンして行くことを意味します。 (Windowsクラスタを使用していないので、複数のAppFabricキャッシュサーバを互いに接続するだけです)。

単一のサーバがダウンしても操作を続けるにはクラスタが必要です。これはどうすればいいですか?

(私はこの質問がServerFaultのをborderliningが、開発者はこれを知っている必要があります私見さを実現。)

答えて

7

あなたは、単一のサーバのクラッシュを生き残るためにキャッシュするために、少なくとも3台のリードサーバー上AppFabricのキャッシュをインストールする必要があります。リードサーバの「多数」がダウンした場合にだけクラスターがダウンするとドキュメントに書かれていますが、細かいところでは、2人中1人が大半を占めていると説明しています。私は、3つのリードノードクラスタからサーバを削除することが広告として機能することを確認しました。

2

典型的な分散システムの概念。アンサンブルで書込みまたは読取りの定足数が発生するには、2f + 1台のサーバーが必要です。ここで、fはサーバーの数が不足している場合です。私はappfabricやCP(CAP定理のように)コンセンサスベースのシステムはクラスタの作業のためにこれが必要であると思います。

--Sai

+0

2F + 1式の "セカンダリ" の数は何か? – UserControl

0

実際ザッツAppFabricのアーキテクチャの問題点と、それは、「リード・ホスト」のコンセプトの面でかなり混乱しています。アイデアは、主催ホストの大半が実行されていて、クラスタが稼動し続けていることです。したがって、3台のサーバーを使用している場合は、少なくとも2つの主催ホストが常に通信し、サーバーリソースを消費しなければなりません。両方がダウンすると、クラスタ全体が失敗します。この考え方は、すべてのサーバーがピアとして機能するピアツーピアアーキテクチャを持つことです。つまり、2台のサーバーがダウンしても、クラスターはアプリケーションのダウンタイムなしで機能し続けます。 nCacheをお試しください:

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