次のシナリオを検討しています。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)
しかし、なぜこの例外が不規則に発生するのか理解できません。