Apache zookeeper 如果三个节点中的一个出现故障,Zookeeper能否保持高可用性

Apache zookeeper 如果三个节点中的一个出现故障,Zookeeper能否保持高可用性,apache-zookeeper,high-availability,Apache Zookeeper,High Availability,如果我有三个zookeeper节点,一个领导者和两个追随者。如果领袖死了怎么办?新的领导人会从剩下的两位中选出吗?如果是这样,如果新领导人也去世了会发生什么?最后一个节点还会为客户端服务吗?在ZooKeeper集群中,如果一个前导节点死亡,其他剩余节点将在它们之间选择一个前导节点。这通常会非常快,并且不会对客户端造成可见的中断。连接到死亡的引线的客户端将重新连接到其他节点之一 至于第二个问题——在一个3节点集群中,如果其中2个节点死亡,第三个节点将不服务于请求。原因是,剩下的一个节点无法知道它是

如果我有三个zookeeper节点,一个领导者和两个追随者。如果领袖死了怎么办?新的领导人会从剩下的两位中选出吗?如果是这样,如果新领导人也去世了会发生什么?最后一个节点还会为客户端服务吗?

在ZooKeeper集群中,如果一个前导节点死亡,其他剩余节点将在它们之间选择一个前导节点。这通常会非常快,并且不会对客户端造成可见的中断。连接到死亡的引线的客户端将重新连接到其他节点之一


至于第二个问题——在一个3节点集群中,如果其中2个节点死亡,第三个节点将不服务于请求。原因是,剩下的一个节点无法知道它是否是唯一的幸存者,或者它是否已与其他节点隔离。在那个时候继续服务请求可能会导致大脑分裂,并违反核心ZooKeeper保证。

感谢Igorbel,我仍然有疑问:在三个ZK节点中,如果领导者死亡,剩下的两个节点还会工作吗?如果有效,他们如何选举新的领导人,因为这是一个偶数法定人数。是的,剩下的两个节点将选举领导人。这是ZooKeeper协议的保证。之所以这样做,是因为他们都知道集群中有第三个成员,但目前似乎没有出现。这与您最初启动2节点群集不同。谢谢!但是剩下的两个节点如何选举自己呢,因为这是一个偶数,投票数可能相等。哦,好的观点。别担心。与政治家不同,动物园管理员节点将能够达成共识,即使只有两个。您可以在这里更详细地检查它是如何工作的,但基本上协议的活性在所有情况下都是有保证的:@igorbel,如果我们有20台卡夫卡机器,您认为集群中的动物园管理员的数量应该是多少?嗨@Jack,您是否使用监管流程来管理您的动物园管理员?