ES 选举
选举消息:
“internal:cluster/request_pre_vote” : 开始选举
"internal:cluster/coordination/start_join 开始加入
“internal:cluster/coordination/join” 请求加入
“internal:cluster/coordination/publish_state” master 发布新集群状态
“internal:cluster/coordination/commit_state” candidate master commit 集群状态
Coordinator:A 初始化(setInitialConfiguration)或者 集群节点更新 (onFoundPeersUpdated) 会发起 重新选举 (startElectionScheduler) 向其他节点 (B)发送 request_pre_vote
A 收到response 向其他节点(B)发送 start_join消息, 请求自己local 节点为master
B 向 A 发送 join
A 收到join 判断选举自己的票数(processJoinRequest) 是否超过半数,达到leader的数量
A 向 B (成为leader 后, JoinAccumulator.close) 发送publish_state 更新集群元数据, 收到回复后 commit_state, (二段提交)集群元数据更新成功。
索引 shard的reroute
masterService 在 有集群变化事件 (ClusterChangedEvent )时 启动 ClusterStateTaskExecutor::clusterStatePublished 的 回掉 (Callback), RoutingService::reroute