https://cloud.tencent.com/developer/article/1696191
raft算法里的选举能够成功的原因在于时间差——即第一个发现leader心跳检测失败的follower会进行投票选举,并在一般情况下快速获取拿到多数同一并成为新leader。同时通过随机时间差避免无止尽的选举进行下去。
这种算法有点类似于新岛屿的发现:地图上有很多岛屿(term),a第一个发现已有岛屿的所有者(leader)不在了,就会去开拓新岛屿(term),并向其他人广播自己发现了新岛屿。如果在其他人的记录里,该岛屿(term)不属于任何人,则会默认认同a作为新岛屿的所有者(leader),其它人也会迁移到新岛屿并作为居住者(follower)。当前一个岛屿的所有者回归,同其他人沟通后发现自己的岛屿(term)已被抛弃,那么会自动跟随到最新的岛屿(term)并成为追随者(follower)