脑裂
split brain,高可用分布式技术常见的一种管理机制错误
es主节点机制:
主节点管理整个集群,现役master计算和生成metadata(元数据),其他master同步数据,
如果主节点宕机,其他master需要选举出新的主节点,经过RBULLY算法
脑裂:
由于网络波动,导致其他节点错误的认为主节点宕机,从而经过选举逻辑,
选出第二个主节点,此时集群中就会存在多个主节点(现役master),该听谁的--脑裂
es解决脑裂的办法:
主节点所在master集群必须满足过半性,需要配置最小master数量,过半数量:master可用数量/2+1
当集群的某个主节点发生脑裂,其他节点会选举出第二个主节点,由于第二个主节点所在集群满足过半,所以由第二个主节点作为集群主节点,如果主节点集群都不能满足过半性,则集群失效
zookeeper集群脑裂解决方式:
当老的leader宕机之后,就会通过选举产生新的leader,就会要求进行数据同步,但是在老的leader重启之后,就会认为自己还是leader,就会要求重新进行数据同步,这个时候就需要引入epoch id,来表明,谁的id最大,就接受谁的数据。