2014-06-10 15 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

相关问题