zookeeper集群节点个数为什么是奇数

zookeeper集群节点个数为什么是奇数## 标题

zk的 leader选举规则是,可用节点数量>节点总数2,注意是>,不能使>=
leader选举的触发条件:集群的 leader节点宕机了触发剩余的节点重新选举出新的 leader.、集群发生了脑裂
1、集群正常运行下发生脑裂
脑裂发生情况是zk集群之间通信出了问题(和宕机还是有区别的),一个集群被分成了两个,所以为了集群发生脑裂的时候能正常选举出新的 leader,才规定集群数量是奇数。

比如k集群是5台,突然发生集群之间通信异常问题,集群脑裂分成了两个小集群(1+4或者2+3模式)。在1+4两个小集群模式下,4个节点的集群满足选举规则(4>5/2),这个可以选举出 leader。1个节点的集群不满足规则,选不出来 leader,会把1个节点的集群废弃。此时4个节点的集群正常对外提供服务同理,在2+3两个小集群模式下,3个节点的集群满足选举规则,这个可以选举出 leader.。2个节点的集群不满足规则,选不出来 leader,会把2个节点的集群废弃。此时3个节点的集群正常对外提供服务
比如zk集群是6台,集群脑裂分成了两个小集群(1+5或者2+4或者3+3模式)在1+5两个小集群模式下,5个节点的集群满足选举规则,这个可以选举出 leader.1个节点的集群不满足规则,选不出来 leader,会把1个节点的集群废弃。此时5个节点的集群正常对外提供服务

同理,在2+4两个小集群模式下,4个节点的集群满足选举规则,这个可以选举出 leader。2个节点的集群不满足规则,选不出来 leader,会把2个节点的集群废弃。此时4个节点的集群正常对外提供服务

但是,在3+3两个小集群模式下,3个节点的集群不满足选举规则,不可以选举出 leader。另一个3个节点的集群同样不满足规则,选不出来 leader。此时无法正常对外提供服务。

所以,zk是6台的情况下,只有在正好脑裂成3+3模式,集群才不可对外服务。

2、集群正常运行下一台发生宕机

只要宕机的不是 leader,就不会发生选举(不考虑脑裂情况)。假如集群是外高桥1台( leader)+嘉定2台,即使嘉定2台都宕机了,这个集群也是会对外提供服务的。

假如是5台,1台 leader宕机,此时剩余的4台可以选举出新的 I leader,可对外提供服务。虽然能对外服务,但此时集群是4台,假如又发生脑裂问题,很有可能不能对外提供服务,所以需要把宕机的尽快恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值