码迷,mamicode.com
首页 > 其他好文 > 详细

zk的脑裂问题你真正理解了没

时间:2020-09-17 23:32:02      阅读:26      评论:0      收藏:0      [点我收藏+]

标签:技术   img   最好   info   alt   raft   一个   导致   文章   

技术图片
说到zk的部署,大家一定会想到部署最好为奇数,上遍文章已经介绍过了zk部署奇数个好,还是偶数好呢?,但另外一个问题大家有没有考虑,为什么zk的选举必须过半同意,才算选举成功呢?
zk用的算法是raft算法,里面写到必须可用节点数过半才能选举出一个leader,这样就避免了脑裂问题的产生,比如:有两个机房,机房a部署了三台zk服务,机房b部署了三台zk服务器,如果发生网络故障,各自独立了,这个时候,各个机房得选举leader,如果选举的逻辑变成,可用节点数>=总节点数/2,这个时候两个机房会选择出各自的leader,这样就导致了有两个leader,这样网络一恢复正常,就不知道听谁的指挥了,就产生了脑裂的问题。所以算法采用的是过半机制,即节点数>总节点数/2,这样机房a和b多不会产生leader,避免了脑裂问题;如果是机房a部署了4台,机房b部署了两台,利用过半原则,只会a产生leader,b不会产生leader,不会导致脑裂的问题,所以过半机制解决了zk脑裂的痛点。
技术图片

zk的脑裂问题你真正理解了没

标签:技术   img   最好   info   alt   raft   一个   导致   文章   

原文地址:https://blog.51cto.com/xxdeelon/2532300

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!