美文网首页jraft
jraft源码阅读4一leader选举

jraft源码阅读4一leader选举

作者: 黄云斌huangyunbin | 来源:发表于2019-04-11 09:27 被阅读0次
1 定时器,一直没收到leader的心跳,就尝试选举自己
image.png image.png
2 预选

如果超过半数以上预选成功,才开始正式选举自己。
预选的只是请求中的term加一,但是本地的term不加一,正式的选举本地的term也会加一


image.png
3 正式选举

本地的term加一,超过半数以上的同意,就当选leader。


image.png image.png
4 选举成功,发送心跳给follower
image.png
image.png

可以看到这里只是定了下次的执行时间,心跳是一直发的,怎么实现一直发的呢


image.png

是在收到心跳结果返回的时候,发起下一次心跳的。

5 follower是如何处理选举请求的

handleRequestVoteRequest方法:
首先,如何term要比自己的大


image.png

其实logid要比自己的大


image.png

可以看到同意后会执行stepDown方法,这个会改变自己的term为请求者的term


image.png

handlePreVoteRequest处理预选的逻辑基本一样,这里就不赘述了。

相关文章

网友评论

    本文标题:jraft源码阅读4一leader选举

    本文链接:https://www.haomeiwen.com/subject/tfoniqtx.html