Raft共识算法

一、每个节点有三种状态:follower、candidate、leader。每个节点有一个定时器,时间到了就自动成为candidate,candidate先投自己一票,并向follower发送投票选举,follower收到投票选举会对比投票轮数,如果有效则投且只能投一次票,当获取到半数以上节点投票后,candidate就成为leader,并向follower发送心跳,follower收到心跳会重置定时器。

二、脑裂问题

  两个leader会对比选举轮数,轮数大的成为leader。如果任期相同,对比follower数量,follower数量大的,成为leader。否则重新选举。

三、数据同步,数据同步可以放在心跳里,当半数以上follower完成同步后,则返回写数据成功。

posted on 2020-02-23 00:25  DjanFey  阅读(118)  评论(0编辑  收藏  举报

导航