|运维必备:Zookeeper集群“脑裂”问题处理大全
本文插图
本文重点分享Zookeeper脑裂问题的处理办法 。 ZooKeeper是用来协调(同步)分布式进程的服务 , 提供了一个简单高性能的协调内核 , 用户可以在此之上构建更多复杂的分布式协调功能 。
脑裂通常会出现在集群环境中 , 比如ElasticSearch、Zookeeper集群 。 而这些集群环境有一个统一的特点 , 就是它们有一个大脑 , 比如ElasticSearch集群中有Master节点 , Zookeeper集群中有Leader节点 。
一、 Zookeeper集群节点为什么要部署成奇数
Zookeeper容错指的是当宕掉几个Zookeeper节点服务器之后 , 剩下的个数必须大于宕掉的个数 , 也就是剩下的节点服务数必须大于n/2 , 这样Zookeeper集群才可以继续使用 , 无论奇偶数都可以选举Leader 。 例如5台Zookeeper节点机器最多宕掉2台 , 还可以继续使用 , 因为剩下3台大于5/2 。
至于为什么最好为奇数个节点?
这样是为了以最大容错服务器个数的条件下 , 能节省资源 。
比如 , 最大容错为2的情况下 , 对应的Zookeeper服务数 , 奇数为5 , 而偶数为6 , 也就是6个Zookeeper服务的情况下最多能宕掉2个服务 。
所以从节约资源的角度看 , 没必要部署6(偶数)个Zookeeper服务节点 。
Zookeeper集群有这样一个特性:集群中只要有过半的机器是正常工作的 , 那么整个集群对外就是可用的 。
也就是说如果有2个Zookeeper节点 , 那么只要有1个Zookeeper节点死了 , 那么Zookeeper服务就不能用了 , 因为1没有过半 , 所以2个Zookeeper的死亡容忍度为0 。
同理 , 要是有3个Zookeeper , 一个死了 , 还剩下2个正常的 , 过半了 , 所以3个Zookeeper的容忍度为1 。
同理也可以多列举几个:2->0; 3->1; 4->1; 5->2; 6->2 就会发现一个规律 , 2n和2n-1的容忍度是一样的 , 都是n-1 , 所以为了更加高效 , 何必增加那一个不必要的Zookeeper呢 。
所以说 , 根据以上可以得出结论:从资源节省的角度来考虑 , Zookeeper集群的节点最好要部署成奇数个!
二、 Zookeeper集群中的''脑裂''场景说明
对于一个集群 , 想要提高这个集群的可用性 , 通常会采用多机房部署 , 比如现在有一个由6台zkServer所组成的一个集群 , 部署在了两个机房:
本文插图
图1
正常情况下 , 此集群只会有一个Leader , 那么如果机房之间的网络断了之后 , 两个机房内的zkServer还是可以相互通信的 。 如果不考虑过半机制 , 那么就会出现每个机房内部都将选出一个Leader 。
本文插图
图2
这就相当于原本一个集群 , 被分成了两个集群 , 出现了两个''大脑'' , 这就是所谓的''脑裂''现象 。
对于这种情况 , 其实也可以看出来 , 原本应该是统一的一个集群对外提供服务的 , 现在变成了两个集群同时对外提供服务 , 如果过了一会 , 断了的网络突然联通了 , 那么此时就会出现问题了 。 两个集群刚刚都对外提供服务了 , 数据该怎么合并 , 数据冲突怎么解决等等问题 。
刚刚在说明脑裂场景时有一个前提条件就是没有考虑过半机制 , 所以实际上Zookeeper集群中是不会轻易出现脑裂问题的 , 原因就在于过半机制 。
Zookeeper的过半机制:在领导者选举的过程中 , 如果某台zkServer获得了超过半数的选票 , 则此zkServer就可以成为Leader了 。
举个简单的例子:如果现在集群中有5台zkServer , 那么half=5/2=2 , 那么也就是说 , 领导者选举的过程中至少要有三台zkServer投了同一个zkServer , 才会符合过半机制 , 才能选出来一个Leader 。
推荐阅读
- 功率|超高功率充电必备 双电芯设计改变了快充
- 目标星辰大海|小米有品硬核工具,“轻如鸿毛”能硬抗6百斤,EDC5.0必备
- 人工智能|“智能感知,智慧运维” 华为中国政企运维峰会2020 成功举办
- 环境|建筑智能运维转型场景之五:室内环境管理的L0-L4路径
- 智能电视|K歌之王必备神器,全民K歌出品的时光欢唱机开箱体验
- 时代新热点|数码尖货推荐:大学生“必备三件套”最实惠组合就在这三件套之手机l 一加8 Pro三件套之二l电脑三件套之三l平板
- 快说新事|画法几何两栖生态C180,懒人必备的智能鱼缸
- 智能穿戴|通勤必备 这几款低延迟、动听音质的蓝牙耳机真香!
- 夜的第七彰|乐鸟电力运维系统:为电力运维插上智慧的翅膀
- 搜狐新闻|云鲸和科沃斯,哪款扫地机器人才是双十一必备之物?
