Raft学习总结

Raft学习总结

  • 1 Raft综述

  • 1.1 起源
    Raft协议起源于 2013 年 斯坦福 Diego Ongaro和John Ousterhout的论文《In Search of an Understandable Consensus Algorithm》。作者表示因为Paxos 晦涩难懂且缺乏工程实现,所以要设计个既容易实现又利于学生学习的一致性算法。Raft 的数据一致性等价于 Multi Paxos,可以用于取代Paxos,并且证明可以提供与Paxos相同的容错性以及性能。
    Raft协议是一种基于日志复制的一致性算法,通过选举领袖的方式来实现的。Raft协议设计首要目标是易于理解,所以采用了分解法(Raft流程可分解为选主、日志复制和安全)和状态空间简化(相较于 Paxos,Raft 减少了未定状态的数量)。

  • 1.2 节点状态
    在Raft集群里,服务器可能会是这三种身份其中一个:
    (1)Leader(领袖者):所有请求的处理者,Leader 接受 client的更新请求,本地处理后再同步至多个其他节点;
    (2)Follower(追随者) :请求的被动更新者,从Leader接受更新请求,然后写入本地日志文件
    (3)Candidate(候选人) :节点处于候选状态,正在竞选 Leader。
    在正常情况下只会有一个领袖者节点,其他都是追随者节点。而领袖节点会负责所有外部的请求,如果是非领袖节点收到时,请求会被转发到领袖节点。
    领袖节点会定时跟所有追随者节点发送心跳请求,让追随者知道集群领袖还在运作。而每个追随者都有一个倒计时器,当超过一定时间没有收到心跳,集群就会进入选举状态。

1.3 相关术语
(1)任期:Raft协议将时间分成了一些任意长度的时间片,每个时间片称为term(任期),term使用连续递增的编号的进行识别。任期出现切换的流程如下:追随者节点将自己维护的current_term_id加1,
将自己的状态转成Candidate发送RequestVote RPC消息(带上current_term_id) 给 其它所有节点进行拉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值