1

次のシナリオを検討しています。Couchbase への get/set 操作中に、ノードをシャットダウンします (仮想マシンの電源をオフにします)。その後、マシンの電源を入れ、Couchbase ノードの復旧を待ちます。ノードのステータスが「正常」に変わると、クライアントが再接続し、get/set 操作が続行されることが期待されます。ただし、クライアントの再接続がすぐに発生する場合もあれば、数分以内に再接続されない場合もあります。

私の質問は次のとおりです。サーバー側またはクライアント側に、クライアントの完全な再接続を保証する構成はありますか?

JavaSDK を使用しています。

ちょっとした追加: Couchbase クライアントは spymemcached クライアントに基づいています。問題を解決できる memcached のヒントを誰かが知っていれば、私はそれらを見てとてもうれしく思います。

別の追加:

クライアントは、次の例外の後、接続の確立の試行を停止します:

Exception in thread "Thread-122" java.lang.IllegalStateException: Got empty SASL auth mech list. 11:59:25,731 ERROR [stderr] (Thread-122) at net.spy.memcached.auth.AuthThread.listSupportedSASLMechanisms(AuthThread.java:99) 11:59:25,731 ERROR [stderr] (Thread-122) at net.spy.memcached.auth.AuthThread.run(AuthThread.java:112)

しかし、なぜこの例外が不規則に発生するのか理解できません。

4

1 に答える 1

0

これは、CouchbaseServer の応答に関する小さなバグです。spymemcached クライアントの開発者とこの問題について話し合っています。このクライアントで文字列をハードコードすると、問題は解決しました。

于 2013-11-13T14:21:44.880 に答える