Nacos Raft选举
2021-07-02 10:08:14 0 举报
Nacos Raft 选举
作者其他创作
大纲/内容
是
否,继续选举
MasterElection
唱票decideLeader
否
满足过半选举?
leaderDueMs-500ms
RaftController
2、接收拉票请求
1、向其他集群节点拉票
判断所有节点是否就绪
init开启选举任务,每500ms执行一次
1、重置节点选票2、term+13、状态Candidate
异步请求,等待回调
onReceive
通过Http异步请求向集群中其他节点拉票
其他集群节点
为自己投票返回本机RaftPeer
重置leaderDueMs重置心跳时间
发送选票sendVote
设置Leader,并同步节点信息
1、当Leader节点确定后,Leader节点从其他集群节点发送心跳2、Follower节点接收到心跳包后,重置本机leaderDueMs,阻止选举,重置本机心跳heartbeatDueMs,将非Follower节点设置为Follower3、如果心跳中包含缓存datums数据,则通过异步Http请求从Leader节点拉取,进行缓存数据同步
HeartBeat
init开启心跳任务,每500ms执行一次但在选举未完成之前,不会发送心跳数据
3、响应拉票
RaftCore
1、重置本机leaderDueMs2、同意拉票3、状态设置为Follower4、同步设置term值为拉票term
拉票的RaftPeer中term<=本机
返回
leaderDueMs<0
0 条评论
下一页