@[T 1 什么是脑裂 如何预防
在一个es集群中,master中出现了多个leader 导致节点不知道去执行谁的命令。常常是因为网络波动造成leader链接不上,其他master选举出新的leader,等之前的leader链接上了 出现了多个leader的情况
预防,在配置文件中配置分片最小master的有效数量为2 这样即使之前的leader恢复 但是是单独的存在,也无法生效!
2 集群的选举步骤
1 启动一个master后 会立刻链接协调器,获取集群的master节点信息,activeMaster值 保存当前集群的leader节点
2 判断activemaster是否为空,一种是集群没有选举,activemaster为空 。如果已经选举,则不为空。为空进入第三部,不为空当前的节点选举结束(所有的节点都会结束在这一步)
3 讲当前集群中所有的master放到一个后背的master ,cadidatelist,进入第四部
4 判断candidatelist中的size是否大于等于最小的master有效数量。如果满足将会把candidatelist中的两个以上节点进行对比id ,id值大的站定位 activemaster,然后重新回到第一步。
不满足则直接重新回到第一步
如果集群的master当即
Master会不断链接协调器
Leader宕机
协调器发现 立刻将activemaster清空 剩余两个节点发现acticvemaster为空 重新选举一个id大的master
备用master宕机
协调器发现,其他的master发现了 宕机一个 ,candidatelist少了一个 剩余2个 慢速最小master2 没有啥影响
如果宕机2个 candidatelist 少了2个 剩下一个 则一直循环集群选举步骤