Spymemcached客户端自动重新连接到Couchbase Cluster中的另一台服务器?

时间:2014-06-10 18:39:11

标签: couchbase spymemcached

我阅读了Couchbase重新平衡文档(http://blog.couchbase.com/rebalancing-couchbase-part-i)并写道:“失去与集群连接的客户端将尝试重新建立(可配置)。无论何时重新连接(第一次或不重新连接),它都会获得最新的地图具有讽刺意味的是,理论上一个片状的网络可能只是帮助这里保持地图在重新平衡期间不断更新,但这是为了不同的讨论。“

我使用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", "");

如果池(40)中的第一台服务器出现故障,我希望我的java客户端自动重新连接到池中的另一台服务器(40,15,16)以获取拓扑(当我的java客户端仍在运行时)。

我可以通过spymemcahce实现此目的,或者我必须转移到Couchbase Java SDK。

1 个答案:

答案 0 :(得分:0)

aspymemcached java客户端dos不处理特定节点的membase故障转移。

您可以查看here

如果将java客户端更新为couchbase java客户端,则可以通过从群集中删除故障节点来处理故障转移。 有关详情,请查看herehere