脑裂是啥子?

脑裂前提

脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节点。

脑裂介绍

对于一个集群,想要提高这个集群的可用性,通常会采用多机房部署。正常情况下,此集群只会有一个Leader,那么如果机房之间的网络断了之后,两个机房内的机器还是可以相互通信的,如果不考虑过半机制,那么就会出现每个机房内部都将选出一个Leader。这就相当于原本一个集群,被分成了两个集群,出现了两个“大脑”,这就是脑裂。

过半机制

在领导者选举的过程中,如果某台服务获得了超过半数的选票,则此服务就可以成为 Leader 了。比如现在集群中有5台 zkServer,那么 half=5/2=2,那么也就是说,领导者选举的过程中至少要有三台 zkServer 投了同一个 zkServer,才会符合过半机制,才能选出来一个 Leader。

总结

总结得出,有了过半机制,对于一个集群,要么没有Leader,要没只有1个Leader,这样就避免了脑裂问题。

上一篇:Zookeeper简易实践操作


下一篇:MySQL学习日记NO.1--安装MySQL