美文网首页
Raft协议总结

Raft协议总结

作者: 旺叔叔 | 来源:发表于2019-12-02 00:13 被阅读0次

动画链接 http://thesecretlivesofdata.com/raft/

1.所有节点有三个状态,leader,candidate,follower.其中candidate状态不能对外工作。

2.选举过程,每个节点两个时间周期和选举有关。
election timeout:失去leader联系的节点等待超过该时间,则变为candidate.随机在150ms 到 300ms之间。
heartbeat timeout:leader往follower发的保活心跳时间。会刷新election timeout。

选举中的具体投票过程。
成为candidate后立刻发信息给所有其他节点,要求其他节点对自己投票。
其他节点如果在election timeout周期内没有投过票则回应赞成票并重置election timeout。--确保一个选举周期内一个节点一票。
并递增选举周期election term。
PS:平票重选-时间是随机,已经相当程度避免了平票。

3.工作过程。leader根据heartbeat timeout为周期发送Append Entries给follower,后者回复,这就是刷新follower的election timeout心跳。
这会持续直到有follower成为新的candidate.

工作过程中的具体写入过程-Log Replication。
第一步leader像集群争取写入同意,半数以上回复同意,此刻返回客户端写入成功并进行第二步。
第二步确认写入,并同步给follower。
可以理解为二段式提交的分布式事务。当然这很脆弱,但是好用。
使用上方介绍的保活消息Append Entries传递消息。

4.脑裂处理:
这里的一些假设先解释一下,要达成脑裂也就是出现两个leader.必须是老的少数派被隔离,产生新的多数派的情况,否则第二个leader根本选不出来。
当然也不存在两个leader拥有相同数量支持者的情况。
少数派leader会写入失败。
多数派leader可写入成功。
网络连通后,老的少数派会看到election term更高的多数派并主动成为follower,两个leader都会放弃未commit的写入,并根据election term的多数派开始同步数据。

相关文章

  • RocketMQ主从切换

    本文主要是记录raft协议的学习过程,包括如下几个方面 raft协议一些基本概念 raft协议场景 raft协议在...

  • Raft协议总结

    动画链接 http://thesecretlivesofdata.com/raft/ 1.所有节点有三个状态,le...

  • 一致性协议raft和Paxos

    raft一致性协议 透彻讲解raft协议选举过程 etcd 利用raft一致性协议 zookeeper使用Paxo...

  • Raft协议

    1.raft协议 raft协议是一个共识算法,主要包括leader election,log replicatio...

  • 对标Eureka的AP一致性,Nacos如何实现Raft算法

    一、快速了解Raft算法 Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解...

  • Raft 协议

    Raft 协议 Raft 感觉是最容易理解的一个了,也很有意思。先说它的逻辑: Raft 协议的每个副本都会处于三...

  • Raft 协议

    Raft 协议是一个分布式共识(consensus)算法, 可以参考 ATC-Raft 和 Thesis-Raft...

  • 【raft】raft协议解析

  • Raft协议

    典型场景分析 场景减少,系统中共有三个节点,由于三个机器各自机器故障,无法与其他的节点完成正常的网络通信,假设三个...

  • Raft协议

    三种节点状态 follow candidate leader Raft一致性策略 Raft协议强依赖leader节...

网友评论

      本文标题:Raft协议总结

      本文链接:https://www.haomeiwen.com/subject/vxotgctx.html