day38_java_基础巩固

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i

为什么 zookeeper 集群的数目,一般为奇数个?

1.容错

由于在增删改操作中需要半数以上服务器通过,来分析以下情况。

2 台服务器,至少 2 台正常运行才行(2 的半数为 1,半数以上最少为 2),正常运行

1 台服务器都不允许挂掉

3 台服务器,至少 2 台正常运行才行(3 的半数为 1.5,半数以上最少为 2),正常运

行可以允许 1 台服务器挂掉

4 台服务器,至少 3 台正常运行才行(4 的半数为 2,半数以上最少为 3),正常运行

可以允许 1 台服务器挂掉

5 台服务器,至少 3 台正常运行才行(5 的半数为 2.5,半数以上最少为 3),正常运

行可以允许 2 台服务器挂掉

6 台服务器,至少 3 台正常运行才行(6 的半数为 3,半数以上最少为 4),正常运行

可以允许 2 台服务器挂掉通过以上可以发现,3 台服务器和 4 台服务器都最多允许 1 台服务器挂掉,5 台服务器

和 6 台服务器都最多允许 2 台服务器挂掉

但是明显 4 台服务器成本高于 3 台服务器成本,6 台服务器成本高于 5 服务器成本。

这是由于半数以上投票通过决定的。


2.防脑裂

一个 zookeeper 集群中,可以有多个 follower.observer 服务器,但是必需只能有一

个 leader 服务器。

如果 leader 服务器挂掉了,剩下的服务器集群会通过半数以上投票选出一个新的

leader 服务器。

集群互不通讯情况:

一个集群 3 台服务器,全部运行正常,但是其中 1 台裂开了,和另外 2 台无法通讯。3

台机器里面 2 台正常运行过半票可以选出一个 leader。

一个集群 4 台服务器,全部运行正常,但是其中 2 台裂开了,和另外 2 台无法通讯。4

台机器里面 2 台正常工作没有过半票以上达到 3,无法选出 leader 正常运行。

一个集群 5 台服务器,全部运行正常,但是其中 2 台裂开了,和另外 3 台无法通讯。5

台机器里面 3 台正常运行过半票可以选出一个 leader。

一个集群 6 台服务器,全部运行正常,但是其中 3 台裂开了,和另外 3 台无法通讯。6

台机器里面 3 台正常工作没有过半票以上达到 4,无法选出 leader 正常运行。

通过以上分析可以看出,为什么 zookeeper 集群数量总是单出现,主要原因还是在于

第 2 点,防脑裂,对于第 1 点,无非是正本控制,但是不影响集群正常运行。但是出现第 2

种裂的情况,zookeeper 集群就无法正常运行了。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
Java 编译器
java基础
【4月更文挑战第5天】java基础
50 2
|
运维 Dubbo Java
day35_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
负载均衡 Dubbo Java
day46_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
监控 负载均衡 算法
day34_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
缓存 NoSQL 数据库
day49_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
安全
day05_java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
day20_java_巩固基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
SQL Java 数据库连接
day27_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!
|
Java Android开发
一道有趣的 Java 基础题
一道有趣的 Java 基础题
64 0
|
Java 索引
Java基础练习篇
Java基础练习篇
111 0