Zookeeper集群“脑裂”问题处理大全

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

Zookeeper集群“脑裂”问题处理大全

前言
脑裂通常会出现在集群环境中,比如elasticsearch、zookeeper集群,而这些集群环境中有一个统一的特点,就是它们有一个大脑,比如elasticsearch集群中有master节点,zookeeper集群中有leader节点;

1.zookeeper集群节点为什么要部署成奇数?

zookeeper容错指的是当宕掉几个zookeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样zookeeper集群才可以继续使用,无论奇偶数都可以选举leader;例如5台zookeeper节点机器最多宕掉2台,还可以继续使用,因为剩下三台大于5/2;

那么为什么最好为奇数个节点?
这样是为了以最大容错服务器个数的条件下,能节省资源;

比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务;
所有从节约资源的角度看,没必要部署6个zookeeper服务节点;

2.zookeeper集群的特性:
集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的;

也就是说如果有2个zookeeper节点,那么只要有1个zookeeper节点死了,那么zookeeper服务就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;

同理,要是有3个zookeeper一个死了,还剩两个正常的,过半了,所以3个zookeeper的容忍度为1;

同理也可以列举几个:2- >0; 3- >1; 4- >1;5- >2; 6- >2;就会发现一个规律,2n和2n-1的容忍度都是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
6月前
|
网络安全 虚拟化
zookeeper集群不能通讯
zookeeper集群不能通讯
|
6月前
|
消息中间件 存储 Kubernetes
Helm方式部署 zookeeper+kafka 集群 ——2023.05
Helm方式部署 zookeeper+kafka 集群 ——2023.05
236 0
|
4月前
|
存储 Java Linux
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
73 1
【Zookeeper】基于3台linux虚拟机搭建zookeeper集群(二)
|
1月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
140 1
|
5月前
|
消息中间件 数据可视化 Kafka
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
67 0
|
5月前
|
算法 Linux
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
56 0
|
5月前
|
Java Linux
Zookeeper集群搭建
Zookeeper集群搭建
|
2月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
91 0
|
2月前
|
网络协议
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
34 0
|
3月前
|
Java
搭建Zookeeper集群的搭建
搭建Zookeeper集群的搭建
30 1

热门文章

最新文章