一起学Consul(3)——Raft算法

现在市面上的很多分布式系统所用的分布式一致性算法基本上都是采用的Raft算法,比如Redis集群、Redis哨兵系统、Consul集群等。还有其他分布式一致性算法,比如Paxos、ZAB(zookeeper atomic Broadcast)等。

首先,什么是分布式一致性?是指在分布式系统中,各个节点的状态如何达到一致的问题。如果数据只存储一份,那么天然是一致的,因为一份数据永远只有一个状态。为了解决单点的性能瓶颈和故障不能转移等问题,引入的集群的架构,同时也带来了一致性的问题,即多个节点在某些时刻的状态不一致的问题。再往下就要提到CAP理论和BASE理论,就不展开了。

由于Paxos比较难以理解,所以出现了Raft。下面我们主要介绍Raft。

一言一概之,Raft是通过选举出一个领袖,负责将变更同步给其他跟随者,从而达到一致的系统。

Raft系统,含有多个节点,每个节点有三种状态:

跟随者状态(Follower state):完全被动,不主动发送请求。

候选人状态(Candidate state):成为领袖之前的状态。

领袖状态(Leader state):管理所有客户端请求,并同步给跟随者。

下文,我将领袖节点也称为主节点,跟随节点称为子节点。

一、领袖选举(leader election)

开始的时候所有节点都是跟随者,因为这时还没选出领袖。

在Raft中,有两个超时时间设置来控制选举,其中一个是选举超时(election timeout),是指

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值