一 入门理解
raft选主动画地址
https://raft.github.io/
b站地址:https://www.bilibili.com/video/BV1so4y1r7eM/?spm_id_from=333.337.search-card.all.click&vd_source=6f86982d223cf7cabe71ff9fbafb3661
文字解释:(大白话就是每次 感觉不到主人心跳的时候 , 每个节点的随时超时时间收不到主人心跳之后,第一个超时的节点就会冒头 给自己 term+1 觉得自己是下一任主人,从追随者状体follower,变身候选人状态candidate,然后发送心跳!~)
当leader节点发生了宕机或网络断连,此时其它follower会收不到leader心跳,首个触发超时的节点会变为candidate并开始拉票(由于随机化各个follower超时时间不同),由于该candidate的term大于原leader的term,因此所有follower都会投票给它,这名candidate会变为新的leader。一段时间后原leader恢复了,收到了来自新leader的心跳包,发现心跳中的term大于自己的term,此时该节点会立刻切换为follower并跟随的新leader。
二 更深入理解原理
和日志复制等文章 未看
https://cloud.tencent.com/developer/article/1192451
Raft算法中的三种超时时间分别是
选举超时、心跳超时和最小选举超时。
在Raft算法中,超时时间主要对应于etcd的配置项包括ElectionTick和HeartbeatTick。
https://www.sohu.com/a/473095281_121157605
raft设计服务器三种状态, 详细理解:
https://blog.csdn.net/weixin_39917485/article/details/119262290