2014-06-10 16 views
1

我讀了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。

+1

Couchbase Java客戶端基於spymemcached項目和來自Couchbase,Inc.的人維護/促成spymemcached。您會發現在2.7.3版本之後有很多更新可以在這些場景中自動恢復。 你不會說從日誌或類似的東西中得到什麼樣的行爲,所以很難肯定地說其中一個版本解決了這個問題。 你有什麼明智的記錄? –

+0

我已經更新了這個問題 – consoko

回答

0

aspymemcached java客戶端dos不處理membase故障轉移的特定節點。您可以檢查here

如果您將java客戶端更新爲couchbase java客戶端,則可以通過從羣集中刪除失敗的節點來處理故障轉移。 欲瞭解更多信息,您可以檢查herehere

相關問題