ES的Master节点
ES集群中必须 有且只有一个master节点,如果出现了两个Master节点(脑裂问题),那么就出问题了,由哪一个master节点来管理集群呢,傻傻的分不清楚,是不!
那么怎样来进行Master的选举呢?
ES的选主机制
主要根据以下三个方面来进行ES的选举:
- 对有资格成为Master的节点进行NodeId排序,每一次选举都将自己识别的节点进行排序,然后选择第一位的节点,暂且认为它是主节点(注意:暂定)
- 如果某一个几点的投票数达到了 N/2+1,并且此节点自己也投给了自己一票,那么就选举这个节点为主节点。否则,重新选举。
- 对于brain split问题,需要把候选master节点最小值设置为可以成为master节点数n/2+1(quorum )
选主机制图解
如下图所示为ES选主机制的图解:
如果因为断网的问题,将集群分为了两个部分,那么这两个部分只能在自己的圈子里去选择主节点。因为,左边的部分只有两个节点 没有达到N/2+1,所以很遗憾,左边的部分没有资格去产生主节点。所以,就不会出现选择两个主节点的问题。
同理,右边的部分符合条件,则可以选择主节点。