Apache zookeeper zookeeper假定群集中的节点已死亡的时间

Apache zookeeper zookeeper假定群集中的节点已死亡的时间,apache-zookeeper,Apache Zookeeper,我最近读到一篇文章,建议使用奇数个节点运行zookeeper。因此,在一个由3个节点组成的集群中,它最多可以容忍2次故障。但是,如果我启动一个3节点集群,只删除其中一个节点,那么它会在什么时候将它看作是一个2节点集群?或者在2节点集群中运行它是一种黑客行为?Zookeeper Atomic Broadcast(ZAB)负责选举领导者并恢复失败的领导者和节点 为了检测故障,Zab在追随者和领导者之间使用周期性心跳消息。如果一位领导人在给定的超时时间内没有收到法定人数追随者的心跳,他将放弃领导权,转

我最近读到一篇文章,建议使用奇数个节点运行zookeeper。因此,在一个由3个节点组成的集群中,它最多可以容忍2次故障。但是,如果我启动一个3节点集群,只删除其中一个节点,那么它会在什么时候将它看作是一个2节点集群?或者在2节点集群中运行它是一种黑客行为?

Zookeeper Atomic Broadcast(ZAB)负责选举领导者并恢复失败的领导者和节点

为了检测故障,Zab在追随者和领导者之间使用周期性心跳消息。如果一位领导人在给定的超时时间内没有收到法定人数追随者的心跳,他将放弃领导权,转而进行州选举

协议迭代包括:

第0阶段——未来领导人选举

第1阶段-发现

第2阶段-同步

第3阶段-广播

在您的情况下,从三个节点开始,然后丢失一个节点,您必须区分这些情况:

A-丢失的节点是领导者 B-丢失的节点不是领导者

在A中,一切都继续进行,没有问题。 在B中,第0阶段再次开始

有关ZAB的详细信息,请参阅本参考资料: