如何选择RAFT共识协议的领导者

时间:2018-09-01 06:24:42

标签: consensus raft

假设5个节点的网络使用RAFT共识协议。每个节点维护一个事务日志,该日志由一系列日志条目组成。每个日志条目又由索引和术语组成。所有这些人都将自己标记为领导者候选人,并发送请求投票(期限,索引)。所有领导者候选节点的当前日志条目(即术语和索引值列表)如下-

enter image description here

那谁将成为领导者?

1 个答案:

答案 0 :(得分:0)

(已经足够长的时间,我认为这将不再用于家庭作业。)

解决问题。

每个节点可以投票给哪个节点?

  • 候选人1:{1、4、5}
  • 候选人2:{1、2、3、4、5}
  • 候选人3:{1、3、4、5}
  • 候选4:{4}
  • 候选5:{1、4、5}

从上面可以看出,候选人1、4、5中的任何一个都具有多数票,因此任何人都可以成为领导人。

候选人4不一定会成为新的领导者,因为另外两个候选人之一可能会先获得答应的选票。

作为一个实际应用,想象一下候选人4是第3任期的领导者,然后死亡。候选人4或5都将接过接力棒,并取得第4个主角。