zookeeper最好为奇数个,是为了容错和防脑裂,那如果有5个节点,leader挂了之后,不是剩4个了吗?又变成偶数了
我知道选举需要过半数,但是如果有5个节点,当leader挂掉之后,不是剩下4个节点,又变回偶数了么???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我知道选举需要过半数,但是如果有5个节点,当leader挂掉之后,不是剩下4个节点,又变回偶数了么???
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的服务数必须大于n/2,zookeeper才可以继续使用,无论奇偶数都可以选举leader。5台机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。说为什么最好为奇数个,是在以最大容错服务器个数的条件下,会节省资源,比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务,所以从节约资源的角度看,没必要部署6(偶数)个zookeeper服务。
你会发现,配置zookeeper的时候你配置了5个节点,这个才是zookeeper选举的依据。
至于down掉一个节点,配置文件里的节点个数并不会减少。所以,无论怎样选举,整个集群一直会以5个节点为选举依据,继续运行。
我发现有5个zk,连续挂了两次leader,最后还有三个follower,但是三个follower仍旧不可用了。这是怎么回事?三个难道不能选举吗?
1、zookeeper规定:可用节点数 > (大于节点总数/2)。
2、