elasticsearch(以下简称el)的节点分为master节点和普通节点。master负责管理维护整个集群的状态,所以新的节点加入时,由master负责把该节点加入集群中。
新节点启动以后,通过224.2.2.4这个广播组和端口54328向同一个网段内的其他节点发送广播。收到广播的节点发回该节点的node id 和 ip,以及该node所连接到的master节点的id 和 ip。然后新节点对接收到的所有回应进行过滤,找到该集群的master节点。在确定master节点以后,新节点向master节点发出加入该集群的请求。master节点收到请求后更改整个集群的状态(包括集群中的节点,索引,路由信息等),并把更新后的集群状态发回给该新节点。
新的节点在获得整个集群的状态信息后,就可以进行scatter/gather的任务。如果新节点的data设为true,master节点在该新节点加入后会进行rebalance,把数据尽量平均的分配到各个节点上。