Raft算法详解(一):介绍

简单介绍

Raft是一种一致性算法,它包含了几个部分分别是领导者选举、日志复制、日志压缩和安全性。

角色

在Raft算法执行时存在着三种角色,分别是领导者(Leader)、追随者(Follower)以及竞选者(Candidate)

领导者:负责管理集群的其他节点和响应客户端请求。整个集群有且只有一个领导者。领导者会定期向集群其他节点发送心跳包,以表示领导者还活着。

追随者:负责同步领导者的日志。整个集群存在多个追随者。每个追随者都设置了一个超时定时器(超时时间随机),当追随者收到领导者的心跳包后,就会重置定时器并发回一个心跳包,表示自己还活着。

竞选者:当追随者超时未收到领导者的心跳包,则认为领导者已死。此时追随者转换为竞选者,开始新一轮的竞选。竞选者会向其他节点发送选票,收到选票的结点会发送支持票或反对票。

其中领导者和追随者是长期存在的角色,而竞选者是临时存在的角色。竞选者只会出现在领导者选举这个阶段,当领导者选举完成,未竞选成功的竞选者就会转换为追随者。

任期

Raft算法的执行是以任期为单位的。一个任期主要包含了选举领导者、日志管理两个过程。一轮投票未能选出领导者或者领导者宕机不能发送心跳包时,本次任期结束。

领导者选举

每个任期都是以领导者选举为起点的,只有选出了领导者才能继续后面的任务。

日志复制

日志复制是Raft算法的核心部分,领导者在接收客户端的请求后,会要求追随者复制领导者的日志,使整个集群的日志保持一致性。

安全性

Raft算法在领导者选举以及日志复制上做了一些限制,以确保算法的可靠性

参考文章

RAFT算法详解
raft共识算法 - 安全性safety

最后

下一篇会讲解Raft的领导者选举过程

对Raft算法感兴趣的朋友还可以阅读一下我翻译的Raft论文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值