我读了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