2 つのノード (Windows 2008 R2) で Couchbase 1.8 クラスターをセットアップしました。
1) ここで説明されているように、2 つのサーバーで必要なすべてのポートを開きます: http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-network-ports.html
2) 最初にノード A (172.30.75.53) を新しいクラスターに作成して、簡単なセットアップを行いました。http://www.couchbase.com/docs/couchbase-manual-1.8/couchbase-bestpractice-cloud-ip.htmlで説明されているように、IP アドレスをサーバーの静的 IP アドレスに変更しました 。デフォルトの Couchbase バケットを使用して作成されました。
3) 次に、ノード B (172.30.75.55) に Couchbase をインストールしました。IPAddress をサーバーの静的 IPAddress に変更しました。
4) ノード A に戻り、ノード B をクラスターに追加しました。
5) Couchbase Web コンソールで最初の再調整を行いました。
6) Couchbase コンソールで、2 つのノードが稼働していることを確認できました。
以下のようにテストする単純なアプリ C# サンプル アプリを作成しました。
ノード A を指す構成ファイル内
var client = new CouchbaseClient();
var setResult = client.ExecuteStore(StoreMode.Set, "someKey", "someData", new TimeSpan(7, 0, 0, 0));
var resultGet = client.ExecuteGet<string>("someKey");
その後、問題なく Get および Set を実行できます (予想どおり)。
次に、構成ファイルで、ノード B を指すように変更しました。
次に、以下のように Get を実行できます (予想どおり): var resultGet = client.ExecuteGet("someKey");
ノード A で、service_stop.bat を実行して CouchBase サービスをシャットダウンします。
テスト アプリがまだノード B を指している状態で、(予想どおり) 取得および設定できました。
ノード A で、次を実行して Couchbase サービスを開始しました: service_start.bat ノード B で、次を実行して CouchBase サービスをシャットダウンしました: service_stop.bat
次に、構成ファイルで、ノード A を指すように変更しました。
ノード A に接続しているときに、次のように Get および Set を実行しようとすると、次のようになります。var resultGet = client.ExecuteGet("someKey");
以下のようにエラーが発生します。
-ストア操作に失敗しました。詳細については、InnerResult または StatusCode を参照してください" -操作の実行に失敗しました -StatusCode : 0
失敗しました。詳細については、InnerException または StatusCode を参照してください" StatusCode : Null
したがって、結論として:
a) ノード A とノード B が実行されている状態で Get および Set を実行できます。(クライアントがノード A またはノード B に接続されている場合)
b) ノード A が停止し、ノード B が実行されている状態で Get および Set を実行できます。(クライアントがノード B に接続されている場合)
c) ノード A が実行中で、ノード B が停止している状態で Get および Set を実行することはできません。(クライアントがノード A に接続されている場合)
何か案は?
ありがとう、
マット