distributed-systems - zookeeper最好为奇数个,是为了容错和防脑裂,那如果有5个节点,leader挂了之后,不是剩4个了吗?又变成偶数了

查看:374
本文介绍了distributed-systems - zookeeper最好为奇数个,是为了容错和防脑裂,那如果有5个节点,leader挂了之后,不是剩4个了吗?又变成偶数了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我知道选举需要过半数,但是如果有5个节点,当leader挂掉之后,不是剩下4个节点,又变回偶数了么???

解决方案

所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的服务数必须大于n/2,zookeeper才可以继续使用,无论奇偶数都可以选举leader。5台机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。说为什么最好为奇数个,是在以最大容错服务器个数的条件下,会节省资源,比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务,所以从节约资源的角度看,没必要部署6(偶数)个zookeeper服务。

这篇关于distributed-systems - zookeeper最好为奇数个,是为了容错和防脑裂,那如果有5个节点,leader挂了之后,不是剩4个了吗?又变成偶数了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆