Raft-6.824-lab2
作者:互联网
通过6.824的lab2学习raft,虽然都是抄的
Raft : 分布式的一致性算法
Raft动画 http://thesecretlivesofdata.com/raft/ // 很棒
主要解决 分布式系统下共识的问题
每个节点有三个状态: Follower(追随者), Candidate(候选人), Leader(领导者)
两种RPC:RequestVote(请求投票),AppendEntries(追加log,作为心跳包)
以及两个超时设置来控制选举:election timeout(选举超时,会随机在150~300ms),heartbeat time(心跳时间)
开始所有节点都在Follower状态,开始等待选举超时,对于先超时的节点会成为候选人,给自己发送投票同时会发送请求投票给其他节点,当节点没有给其他节点投票过时,就会投票给候选人,并且重置选举超时时间。当某个候选人获得大多数投票,就会成为领导者。领导者会发送日志给其他追随者以心跳时间,追随者会响应追加的日志,领导者发现过半追随者已经获得某个日志以后,本个日志就可以交给状态机来执行。
难点就是理解这张图,
参考资料:
Raft论文 英文:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf
中文:https://github.com/maemual/raft-zh_cn/blob/master/raft-zh_cn.md
参数讲解:https://www.cnblogs.com/lushilin/p/9268969.html
参考其中代码:https://blog.csdn.net/qq_42397248/article/details/100064450
标签:6.824,lab2,投票,https,raft,Raft,超时,节点 来源: https://www.cnblogs.com/lmhyhblog/p/11850177.html