SpymeCached客户端是否自动重新连接到Couchbase群集中的另一台服务器?

SpymeCached客户端是否自动重新连接到Couchbase群集中的另一台服务器?,couchbase,spymemcached,Couchbase,Spymemcached,我阅读了Couchbase Rebalanceing文档(),它写道:“一个失去与集群连接的客户端将尝试重新建立(可配置的)。无论何时重新连接(第一次或不是第一次)它得到了集群拥有的最新地图。具有讽刺意味的是,理论上一个脆弱的网络可能有助于在重新平衡过程中不断更新地图,但这是为了不同的讨论。” 我使用SpymeCached 2.7.3,如何实现这一点 我举一个例子:我的Java客户端添加了两个服务器(10.0.0.40和10.0.0.15,使用URL)来连接Couchbase集群。但实际上,当1

我阅读了Couchbase Rebalanceing文档(),它写道:“一个失去与集群连接的客户端将尝试重新建立(可配置的)。无论何时重新连接(第一次或不是第一次)它得到了集群拥有的最新地图。具有讽刺意味的是,理论上一个脆弱的网络可能有助于在重新平衡过程中不断更新地图,但这是为了不同的讨论。”

我使用SpymeCached 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", "");
ArrayList listAddr=new ArrayList();
添加(新URI(“http://10.0.0.40:8091/pools"));
添加(新URI(“http://10.0.0.15:8091/pools"));
添加(新URI(“http://10.0.0.16:8091/pools"));
client=newmemcachedclient(newbinaryconnectionfactory(),listAddr,“test”,“test”,和“”);
如果池(40)中的第一台服务器出现故障,我希望java客户端自动重新连接到池(40,15,16)中的另一台服务器,以获取拓扑(当java客户端仍在运行时)


我可以通过SpymeMachce实现这一目的,还是必须转移到Couchbase Java SDK。

Spymecached Java client dos不处理特定节点的membase故障转移

你可以查一下

若您将java客户机更新为couchbase java客户机,那个么您可以通过从集群中删除失败的节点来处理故障转移。
有关更多信息,您可以查看或

Couchbase Java客户端基于SpymeMached项目,Couchbase,Inc.的人员维护/贡献SpymeMached。您会发现,在这类场景中,在2.7.3之后有许多更新用于自动恢复。您没有说明从日志或类似内容中获得的行为,因此很难说稍后的版本是否解决了这个问题。你从日志中得到了什么?我已经更新了这个问题