「分布式」看完这个动画秒懂 Raft 算法

「分布式」看完这个动画秒懂 Raft 算法

感谢为伟大的网络,给我们提供了这么好的资源。

一个动画让你秒懂Raft协议:http://thesecretlivesofdata.com/raft/

Raft协议中的基本概念

在Raft协议中,同一时刻个种节点只能处在以下三种状态中的一种

  • Follower 都是以该转态开始,如果检测到没有Leader,状态变为Candidate
  • Candidate 向其他节点拉选票,得到大多数节点的投票,变为Leader,称为”Leader Election“
  • Leader 所有对系统的修改都要先经过Leader。每个修改都会写一条日志(Log Entry)。

Leader 收到修改请求后,操作过程如下,该过程叫"日志复制Log Replication"

  • 复制日志到所有Follower节点(replicate entry)
  • 大多数节点响应时才提交日志
  • 通知所有Follower节点日志以提交
  • 整个系统处于一致状态

最重要的几个问题

  • Leader选举
  • 选举投票平局,进行加时赛(随机时间(150-300ms)重新选举)
  • 网络分区(脑裂),改朝换代,当然以新领导新任期为准,未提交(uncommitted)的操作丢弃(回滚)

整理了一下最近的【SpringBoot】系列文章,方便码友阅读。


分享到:


相關文章: