我讀了Couchbase Rebalancing文檔(http://blog.couchbase.com/rebalancing-couchbase-part-i),它寫道:「失去與集羣連接的客戶端將嘗試重新建立(可配置)。任何時候重新連接(首次與否)都會獲得集羣擁有的最新映射。具有諷刺意味的是,從理論上來說,一個片狀網絡可能只是幫助這裏保持地圖在重新平衡期間不斷更新,但這是一個不同的討論。「Spymemcached客戶端自動重新連接到Couchbase集羣中的另一臺服務器?
我使用Spymemcached 2.7.3,我該如何實現這一點。
我舉一個例子:我的Java客戶端添加兩個服務器(10.0.0.40和10.0.0.15,使用URL)連接到Couchbase集羣。但實際上,當10.0.0.40減少時,持續連接並沒有保持。我必須重新啓動我的客戶端才能切換到10.0.0.15。我的客戶端如何在10.0.0.40下重新連接到10.0.0.15而無需重新啓動我的應用程序。
更新時間:
我用下面的代碼連接到Couchbase集羣:
ArrayList<URI> listAddr = new ArrayList<>();
listAddr.add(new URI("http://10.0.0.40:8091/pools"));
listAddr.add(new URI("http://10.0.0.15:8091/pools"));
listAddr.add(new URI("http://10.0.0.16:8091/pools"));
client = new MemcachedClient(new BinaryConnectionFactory(), listAddr, "test", "test", "");
我想我的Java客戶端自動重新連接池(40,15,16),另一臺服務器來獲得拓撲(當我的java客戶端仍在運行時)池(40)中的第一個服務器失敗。
我可以用spymemcahce實現這個目的,或者我必須移動到Couchbase Java SDK。
Couchbase Java客戶端基於spymemcached項目和來自Couchbase,Inc.的人維護/促成spymemcached。您會發現在2.7.3版本之後有很多更新可以在這些場景中自動恢復。 你不會說從日誌或類似的東西中得到什麼樣的行爲,所以很難肯定地說其中一個版本解決了這個問題。 你有什麼明智的記錄? –
我已經更新了這個問題 – consoko