Zookeeper的脑裂问题及解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper的脑裂问题及解决方案相关的知识,希望对你有一定的参考价值。
参考技术A 先抛出一个问题:Zookeeper3.4.6版本是否存在脑裂问题?一,什么是脑裂
什么是脑裂呢?
下图是一个正常的Zookeeper集群,由7个节点组成。其中有1个Leader A和6个Follower。
当网络发送故障时,Follower D、Follower E、Follower F从集群中断开了,然后这3个节点认为Leader挂了,然后重新选了1个Leader,Follower E变成了Leader B,如下图,这就是脑裂。
上图有可能存在一个问题,因为Zookeeper集群的一个特性是:过半节点存活可用。如何理解。网上有一个说法:有100个节点组成的集群,如果被网络分割成50和50两个分区,那么整个集群是不可用的,因为不满足过半节点存活可用的原则。
二,Zookeeper3.4.6版本是否存在脑裂问题
首先,Zookeeper3.4.6不存在脑裂的问题。
为什么呢?
Zookeeper3.4.6的选举算法是FastLeaderElection,该算法的规则是投票超过半数的服务器才能当选为Leader。这个算法能够保证leader的唯一性。
架构实践分布式系统的“脑裂”到底是个什么玩意?
目录
以上是关于Zookeeper的脑裂问题及解决方案的主要内容,如果未能解决你的问题,请参考以下文章