其他分享
首页 > 其他分享> > Raft-6.824-lab2

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