Zookeeper要安装在奇数个节点,但是为什么?

Posted 小黑妹007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper要安装在奇数个节点,但是为什么?相关的知识,希望对你有一定的参考价值。

Zookeeper要安装在奇数个节点,但是为什么?

 

我们都知道,Zookeeper要安装在奇数个节点,但是为什么?
Zookeeper的大部分操作都是通过选举产生的。比如,标记一个写是否成功是要在超过一半节点发送写请求成功时才认为有效。同样,Zookeeper选择领导者节点也是在超过一半节点同意时才有效。最后,Zookeeper是否正常是要根据是否超过一半的节点正常才算正常。这是基于CAP的一致性原理。

zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2->0;3->1;4->1;5->2;6->2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

 

redis/zookeeper

以上是关于Zookeeper要安装在奇数个节点,但是为什么?的主要内容,如果未能解决你的问题,请参考以下文章

为什么zookeeper的节点配置的个数必须是奇数个

ZooKeeper 集群的安装配置

ZooKeeper 集群的安装配置---Dubbo 注册中心

zookeeper集群节点数为啥是奇数个

ZooKeeper集群的安装配置高可用测试

zookeeper集群节点数量为什么要是奇数?