节点奇数的原因:

zookeeper集群节点数推荐为奇数(2n+1)个,因为如果为偶数个节点,当有一半节点发生故障时,由于没有足够的节点数来选举新的leader节点(要求半数以上节点选举,不包含半数),会导致整个集群无法工作。如果只能部署两个节点,则不如使用单节点,因为两个节点的集群,只要任意一个节点发生故障,则集群无法工作。

最少3个的原因:

集群规则为:2N + 1 台,N > 0,即最少需要 3 台。

因为 ZK 集群的机制是只要超过半数的节点正常,集群就能正常提供服务。

只有在 ZK 节点挂的太多,只剩一半或不到一半节点能工作,集群才失效。

如:

3 个节点的 cluster 可以挂掉一个节点(leader 可以得到 2 票 > 1.5)

2 个节点的 cluster 就不能挂掉任何一个节点了(leader 可以得到 1 票 <= 1)


参考文献:https://blog.csdn.net/guan0005/article/details/84954301

                  https://blog.csdn.net/dd2016124/article/details/114038886


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐