Redis中的可用性保证之Sentinel的Ratf 算法

在分布式存储系统中,通常通过维护多个副本来提高系统的可用性,那么多个节点之间必须要面对数据一致性的问题。Raft 的目的就是通过复制的方式,使所有节点达成一致,但是这么多节点,以哪个节点的数据为准呢?所以必须选出一个Leader。

大体上有两个步骤:领导选举,数据复制。

Raft 是一个共识算法(consensus algorithm)。比如比特币之类的加密货币,就需要共识算法。Spring Cloud 的注册中心解决方案Consul 也用到了Raft 协议。

Raft 的核心思想:先到先得,少数服从多数。

Raft 算法演示:

http://thesecretlivesofdata.com/raft/

总结:

Sentinle 的Raft 算法和Raft 论文略有不同。

1、master 客观下线触发选举,而不是过了election timeout 时间开始选举。

2、Leader 并不会把自己成为Leader 的消息发给其他Sentinel。其他Sentinel 等待Leader 从slave 选出master 后,检测到新的master 正常工作后,就会去掉客观下线的标识,从而不需要进入故障转移流程。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值