ZooKeeper集群脑裂问题处理,值得收藏!

目录

ZooKeeper集群节点为什么要部署成奇数

ZooKeeper集群中的“脑裂”场景说明

Zookeeper集群“脑裂”问题处理

什么是脑裂?

ZooKeeper脑裂是什么原因导致的?

ZooKeeper是如何解决“脑裂”问题的?

总结


 

本文重点讲解ZooKeeper脑裂问题的处理办法。ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。脑裂通常会出现在集群环境中,比如Elasticsearch、ZooKeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如Elasticsearch集群中有Master节点,ZooKeeper集群中有Leader节点。

先分享一个Spring知识点思维导图给大家

关注公众号:程序员白楠楠。

需要的朋友点我获取:2020最新面试题一份

 

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集群中的“脑裂”场景说明

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zookeeper集群脑裂是指集群中的节点在网络通信出现问题时,导致无法达成一致的状态,进而影响数据的一致性。引用中提到了Zookeeper集群中的脑裂问题以及解决方法。 Zookeeper集群中通过部署成奇数个节点来避免脑裂问题的发生。引用指出,只要有过半的机器是正常工作的,整个集群就被视为可用。也就是说,如果集群中有2n+1个节点,那么只要n个节点正常工作,集群就可以正常运行。 尽管Zookeeper集群通过奇数个节点来提高容错能力,但如果在网络通信中发生了问题,仍然可能导致脑裂问题。引用中提到,主要原因是集群和客户端的超时判断无法完全同步,可能出现一前一后的情况。此外,切换后通知各个客户端的速度也可能存在差异。 为了解决脑裂问题Zookeeper采取了一系列措施。具体的解决方法可以在引用中找到。总的来说,Zookeeper会通过leader选举机制选择一个节点作为leader,其他节点作为follower,leader负责处理客户端的请求,并将数据变更广播给follower。当发生脑裂问题时,Zookeeper会尝试重新选举leader,并将集群中的节点切换到新的leader上,以实现数据的一致性。 综上所述,脑裂是指Zookeeper集群中节点在网络通信出现问题时导致无法达成一致的状态。为了解决脑裂问题Zookeeper通过部署奇数个节点和leader选举机制来提高容错能力,并确保数据的一致性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [关于ZooKeeper集群脑裂及其解决方案](https://blog.csdn.net/qq_31960623/article/details/119713311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值