Zookeeper 节点宕掉之后的工作

<p>假设咱们有5台机器:A-1&#160; B-2&#160; C-3&#160; D-4&#160; E-5&#160; (后面的数字为myid)。</p> <p>为简化过程咱们使用第一次启动ZK,假设是按我之前写的顺序启动,那么应该是C为leader,其它节点为follower(为什么会这样?请大家自行充电ZK选举算法)。</p> <p>在集群的运行情况下,会有读写的操作,而咱们需要关注的是写操作。ZK集群为保证数据的一致性所有的操作都是由leader完成,之后再由leader同步给follower。重点就在这儿,ZK并不会确保所有节点都同步完数据,只要有大多数节点(即n/2+1)同步成功即可。</p> <p>咱们假设有一个写操作成功那么现在数据只存在于节点C,之后C再同步给A与B。</p> <h3>结果:</h3><p>这时候宕掉任意三个节点,根据选举策备可知这两个节点并不能选出leader(因为无论怎么选都不会有超过半数的节点支持其中一个节点),所以两个节点都转到looking状态--即无法正常服务。</p> <p>但是如果有一台恢复那么至少会有一个节点存有最新的数据,那么在选举中这个节点将会被选为leader,然后将数据同步到其它节点--即恢复服务。</p>

转载于:https://my.oschina.net/Senger/blog/174621

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值