我正在尝试理解筏共识算法以尝试实现它,我还不了解的是领导者选举算法,当一个节点从状态跟随者传递到候选者时,termId会增加,但是我们如何确保已增加的实际termid是最新的,并且将来没有其他节点具有相同的termid吗?
无法保证将来,另一个节点不会尝试重用已经使用的termId。
但是对Raft来说,这一切都很好。如果有一个对等方尝试使用低于当前termId的termId进行选举,则不会投票。
开始选举的该对等方将收到包含集群当前termId的RPC响应,并且需要更新其状态以匹配系统的当前状态,转向关注者并更改其termId。
[基本上,每次对等方接收到termId高于其“本地” termId的响应或请求时,该对等方都需要更新其本地状态并转向关注者。