Zookeeper集群数目一般为奇数个的原因

首先需要明确zookeeper选举的规则:leader选举,要求 可用节点数量 > 总节点数量/2 。

比如:标记一个写是否成功是要在超过一半节点发送写请求成功时才认为有效。同样,Zookeeper选择领导者节点也是在超过一半节点同意时才有效。最后,Zookeeper是否正常是要根据是否超过一半的节点正常才算正常。这是基于CAP的一致性原理。

zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。

也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的

死亡容忍度为0;

同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;

同理:

  • 2->0;两个zookeeper,最多0个zookeeper可以不可用。
  • 3->1;三个zookeeper,最多1个zookeeper可以不可用。
  • 4->1;四个zookeeper,最多1个zookeeper可以不可用。
  • 5->2;五个zookeeper,最多2个zookeeper可以不可用。
  • 6->2;两个zookeeper,最多0个zookeeper可以不可用。
    ...

会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

zookeeper的选举策略也是需要半数以上的节点同意才能当选leader,如果是偶数节点可能导致票数相同的情况。

相关推荐
jiunian_cn24 分钟前
【Linux】centos软件安装
linux·运维·centos
程序员JerrySUN36 分钟前
[特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
java·linux·架构
孤寂大仙v38 分钟前
【计算机网络】非阻塞IO——select实现多路转接
linux·计算机网络
派阿喵搞电子1 小时前
Ubuntu下有关UDP网络通信的指令
linux·服务器·网络
Evan_ZGYF丶1 小时前
【PCIe总线】 -- PCI、PCIe相关实现
linux·嵌入式·pcie·pci
舰长1151 小时前
Ubuntu挂载本地镜像源(像CentOS 一样挂载本地镜像源)
linux·ubuntu·centos
程序员JerrySUN1 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
Theodore_10221 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
huangyuchi.2 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
帽儿山的枪手2 小时前
程序员必掌握的iptables五表五链
linux·网络协议