1

AppFabric 1.1 クライアントのドキュメントでは、DataCachServer エンドポイントのリストを DataCacheFactoryConfiguration に割り当てる方法について説明しています。ほとんどの例は、1 つまたは 2 つの異なるキャッシュ サーバーで構成されるリストを示しています。クラスタがn台のサーバーで構成されている場合、クライアントは各サーバーを登録する必要がありますか? サーバーが登録されている順序は重要ですか? たとえば、Web 層に 50 台のサーバーがあり、キャッシュ層に 5 台のサーバーがある場合、50 台の Web サーバーのそれぞれが 5 つのキャッシュ サーバーすべてを登録しますか? サンプルコードは次のとおりです。

// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[5];
servers[0] = new DataCacheServerEndpoint("Cache01", 22233);
servers[1] = new DataCacheServerEndpoint("Cache02", 22233);
servers[2] = new DataCacheServerEndpoint("Cache03", 22233);
servers[3] = new DataCacheServerEndpoint("Cache04", 22233);
servers[4] = new DataCacheServerEndpoint("Cache05", 22233);

// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration();
factoryConfig.Servers = servers;

// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache named "default".
DataCache myDefaultCache = mycacheFactory.GetCache("default");

各 Web サーバーは同じように登録できますか? また、キャッシュ層全体で負荷が分散されますか? 登録済みのサーバーが使用できなくなった場合、次のサーバーが順番に試行されますか、それともランダム化されますか? サポート ドキュメントへのリンクが役立ちます。

負荷分散に関連して、Jason Rothは次のように書いています [利用可能な他のドキュメントはありますか]?

アプリ ファブリック クライアントはスマート クライアントであり、データを保持しているサーバーに直接接続できます。アプリケーションは負荷分散について心配する必要はありません。これは、ルーティング クライアントを使用して行われます。

4

1 に答える 1

1

いくつかのテストに基づいて、Jason Roth のコメントを浸透させたところ、DataCacheFactory で GetCache メソッドが呼び出されたときに、「スマート クライアント」が DataCacheServerEndPoint を使用してキャッシュ クラスター メンバーのリストを取得していると思いますDataCache オブジェクトはスマートなものです。DataCacheServerEndpoint のインスタンス化で使用されるサーバーがオフラインになるか、その他の理由で使用できなくなった場合でも、スマート クライアントは引き続き他のクラスター メンバーにアクセスできるという意味でスマートです。したがって、複数の DataCacheServerEndpoint のリストの目的は、GetCache メソッドを呼び出すときに冗長性を提供することです。

アドバイスは、DataCache オブジェクトはシングルトン パターンに従うべきであり、キャッシュからのデータに対する各要求でインスタンス化されないようにすることです。これが、個々の DataCacheServerEndpoints に対して負荷分散や VIP の提供を行う必要がない理由です。

必要な数の DataCacheServerEndPoints をインスタンス化して、少なくとも 1 つが常に稼働していることを確認します。少なくとも 1 つが稼働していることを確認する唯一の方法でない限り、キャッシュ クラスターのすべてのメンバーを追加する必要はありません。

キャッシュ クラスター内のボックスを管理する場合 (たとえば、毎月のパッチを適用する場合)、ボックスのグループを "ウェーブ" で管理しようとするのではなく、一度に 1 つのボックスを管理することによって、キャッシュのスラッシングとリバランスを最小限に抑えることを検討してください。

于 2013-04-10T18:55:06.533 に答える