宕机容错(CFT)-分布式一致性算法RAFT
Posted 酣睡中的银酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宕机容错(CFT)-分布式一致性算法RAFT相关的知识,希望对你有一定的参考价值。
Raft是强一致性的分布式日志复制协议,是宕机容错的,Raft相比较于Paxos更加简洁,动画理解见于:http://thesecretlivesofdata.com/raft/。
相比较于其他的CFT一致性协议,Raft具有以下优势
- 强leader,只会将日志复制从leader到其他副本,简化复制日志和协议的复杂性
- leader选举,Raft采取随机时间来选举leader,快速响应,算法简洁
- 集群成员改变,当集群成员改变时,仍可继续提供服务
Raft 一致性协议对于可用性系统具有以下特点:
- 安全性:在非拜占庭节点条件下,可容忍网络延迟,包丢失,重复,数据包重排序
-可用性,只要超半数节点可用,系统就可用
-不需要靠时间来保证日志的一致性,可以容忍时钟错误可消息延迟
Raft实现架构:
如上图所示,通过一致性模块写入Log,确认后再写入状态机,这样,数据就被正式的写入数据库中。
Raft节点身份切换:当follower没有收到leader的心跳超过一个随机时间,就开始进入Candidate身份,发起投票,如果收到超过半数投票,即成为leader,当发现任期(Term)更高发节点又会退回到Follower节点身份。如下图所示.
每个Leader服务都有一个时间段,叫任期,超过任期会重新选举,如图所示:
Raft协议要点:
1 leader election
2 log Replication
3 Election restriction
4 safely
细节看论文:
以上是关于宕机容错(CFT)-分布式一致性算法RAFT的主要内容,如果未能解决你的问题,请参考以下文章