nacos源码分析——raft如何心跳保持

raft的一个基本逻辑是leader隔一段时间给所有的follower发心跳。如果follower长时间没收到心跳,就认为leader已经挂了,就发起投票选举新的leader。

在RaftCore的init方法里面


image.png
HeartBeat 就是leader的心跳定时任务
MasterElection 就是follower长时间没收到心跳就选举的定时任务

HeartBeat的sendBeat就是具体发送心跳信息了
image.png

follower收到心跳请求的时候
image.png
receivedBeat 方法会执行 resetLeaderDue();
image.png
follower就是根据这个变量判断是否要重新选leader的。
image.png

这样就全部串起来了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。