Elasticsearch的选举
Posted hi-zhixian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch的选举相关的知识,希望对你有一定的参考价值。
一、bully算法
经过以下几个步骤
1.启动节点ping协调器,获取当前集群状态(节点信息,集群名称等),如果协调器没有启动一直到ping通为止
2.无论能ping通,都会拿到对象activeMaster现役master
3.判断activeMaster的数量,0说明当前集群没有master,1表示当前集群已经选举完毕.
4.如果为1,当前节点启动Bully算法逻辑结束;如果为0,进入第5步(总会停止在这里)
5.启动时发现没有现役master,将集群中所有的master节点放到candidate的候选名单中.候选名单大于等于最小master数量,小于最小master数量.
6.如果candidate中大于等于master最小数量,从其中选举一个id值最小的节点放到activeMaster中,暂定为master,如果小于最小master转回第一步.
二、master宕机逻辑
在集群中,任意节点的变化,都会导致所有人记录的candidate/activeMaster发生变化
○ activeMaster发生变化(1-0),主节点宕机
重新进行选举
○ candidate发生变化,现役master正常,其他备选有宕机现象;
重新判断集群的最小个数(activeMaster+candidate个数>=最小master)
以上是关于Elasticsearch的选举的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch 是如何实现 master 选举的 ?