Zookeeper客户端会话将超时还是被传输到另一台服务器?

时间:2019-03-19 04:31:17

标签: apache-zookeeper

如图所示,我们有一个由s1,s2和s3组成的Zookeeper集群,以及两个Zookeeper客户端c1和c2。 c1连接到s1,c2连接到s3。我想知道如果s3发生网络分区,那么c2会发生什么情况,这意味着s3无法连接到s1和s2,但它仍在运行。 c2会收到异常还是将其会话迁移到另一台服务器?

pic

split-brain

1 个答案:

答案 0 :(得分:1)

我不是Zookeeper专家,但还设置了3个节点,并且正在阅读很多有关内容并进行了一些实验。

Zookepeer中有tickTime and syncLimit个设置,用于定义关注者可以取消同步的时间(如果关注者落后于领导者太远,则会被丢弃)。

我正在尝试关闭与客户端连接的节点。我在日志中看到异常,然后客户端将自身重新连接到另一个节点。

不过,还有一个设置initLimit,该设置定义客户端必须建立连接的时间。如果它在这段时间内未能建立连接,您将收到ConnectionLoss异常。