什么是脑裂
通俗来讲就是一个黑帮中出现了两个老大,所谓一山不容二虎,就造成了领导混乱。
我们拿ZooKeeper集群来讲一下脑裂是如何产生的。
首先,我们有一个集群,集群里只有一个leader
但是此时由于网络波动,使得一部分服务器脱离了集群,形成了一个小的集群,此时群龙无首,他们就会选举出一个新的leader
但是由于网络修复,分离出去的服务器又连接上了集群,就造成了两个leader存在。由此造成脑裂。
解决脑裂
所以集群要防止出现Split-Brain的问题出现,Quoroms是一种方式,即只有集群中超过半数节点投票才能选举出Leader。
这样的方式可以确保leader的唯一性,要么选出唯一的一个leader,要么选举失败.
ZooKeeper默认采用了这种方式。