美文网首页
分布式状态一致--Raft算法

分布式状态一致--Raft算法

作者: 安中古天乐 | 来源:发表于2020-08-04 11:17 被阅读0次

要学习Raft算法,强烈推荐一个网址: http://thesecretlivesofdata.com/raft/

基本上述网址多看几遍,Raft算法就了解得七七八八了。

但关于Raft算法,还需要注意以下关键点:

  • 保证各server节点的选举超时时间相异

Raft有2个超时配置,1个为选举超时时间(election timeout),其表征了节点状态由follower转变为candidate所需要的时间,其在150ms-300ms之间随机取值。

集群初始状态时,各server节点的状态均为follower,当server时钟超时后,状态会由follower转变为candidate。

candidate状态的server节点会发起投票流程,candidate节点会先投自己1票,然后给其他节点发送求票信息,若其他节点收到求票信息时还未超时,则会将票投给发送请求的candidate节点。

票数最多的candidate节点状态将会更新为leader。

若各server节点的超时时间相同,则选举过程可能会陷入胶着状态,难以选出leader。

leader选取成功后,会周期性地发送心跳信息给各follower,该周期即是Raft另外1个超时配置: 心跳超时(heartbeat timeout)。

若follower未在heartbeat timeout时间内收到来自leader的心跳信息,则会由follower状态转化为candidate,并发起新一轮的投票流程。

  • leader节点必须等待大多数follower将状态写入日志,才可将该状态值commit。
1.jpg 2.jpg 3.jpg 4.jpg
  • 当2个follower节点同时变为candidate,会发生split vote
5.jpg 6.jpg 7.jpg 8.jpg

相关文章

  • 分布式系统-一致性算法-Raft算法

    Raft算法介绍 raft是一个协议,可以用来实现分布式系统的一致性。 raft算法中节点的三种状态 Leader...

  • Raft算法解析

    什么是Raft算法? Raft算法是用于解决分布式系统中一致性问题的算法。在Raft算法之前,Lamport老爷爷...

  • etcd名词解释

    Raft:etcd所采用的保证分布式系统强一致性的算法。 Node:一个Raft状态机实例。 Member: 一个...

  • Raft 算法(详细版)

    1. Raft 算法简介 1.1 Raft 背景 在分布式系统中,一致性算法至关重要。在所有一致性算法中,Paxo...

  • 分布式一致性算法:Raft 算法(Raft 论文翻译)

    可进入我的博客查看原文。 Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比...

  • raft论文笔记

    raft论文笔记 使用目的:Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,是用来管理复制日志(...

  • 分布式一致性算法Raft-理论篇

    1. 什么是Raft? Raft其实是一种分布式一致性算法(分布式共识算法)。核心还是和Paxos差不多但是更加便...

  • 从 dgraph-io/dgraph 了解 etcd/raft

    0. Intro 0.1 raft raft 是一种分布式一致性算法. 简单来说, raft 的使用场景是 log...

  • Raft一致性算法

    Raft 也是一种分布式一致性算法(2PC、Proxy、ZAB) 一致性算法是从复制状态机的背景下提出的。一致性算...

  • 分布式选举-Raft算法-1 Leader选举 原理

    Raft理论是分布式数据一致性算法,为了便于理解Raft算法分成了4个部分:-Leader选举-日志复制-成员变更...

网友评论

      本文标题:分布式状态一致--Raft算法

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