zk的脑裂问题你真正理解了没
2020-09-12 15:57
1211 查看
说到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脑裂的痛点。
相关文章推荐
- Android状态栏微技巧,带你真正理解沉浸式模式
- Java六大必须理解的问题
- 学会这 18 个工具,你一定能真正理解如何监控网络带宽!
- 有没有那么一道题,让你从此真正理解了Python编程?
- php中引用&的真正理解-变量引用、函数引用、对象引用
- 保留代码,狼羊过河的问题(暂未理解)
- 彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题
- Java初学者都必须理解的六大问题
- 动态规划的钢条问题简化解的理解
- 真正解决FC5、FC6看不到鼠标指针(光标)的问题
- 对于分支界限法的理解(补出门门票-week13,结对伙伴对我提的问题的答案)
- 阅读随想:《你的灯亮着吗?——发现问题的真正所在》
- 真正解决 PowerPoint 2007 中不能输入汉字问题
- 深入理解java web中文编码问题(其二)
- Java初学者必须理解的六个大问题
- 问题解答理解802.11n
- 一些问题的理解
- RecyclerView中ViewHolder重用机制理解(解决图片错乱和闪烁问题)
- 2.1递归概念 - 对排序问题、整数划分问题、汉诺塔问题的理解
- 关于流和缓冲区的理解以及一般标准输入问题的解决方法小结.