raft算法的核心思想

raft算法跟paxos,zab(zookeeper atomic broadcast)算法类似,设计一个一致性算法,在一个分布式系统中实现一个分布式的、高可用的、一致性的存储系统。

raft的特点是设计简单,易于程序员的理解和实现,并不是那么抽象。

raft算法的核心思想和关键技术点:

  1. 保证系统中只有一个leader,每次leader选举都是必须具有最新的termID(或者epoch),并拿到一个多数派的选票。
  2. 每次发布一个新数据,leader必须在一个多数派都commit之后才会将这条记录记录为commit状态;
  3. follower只会从leader来同步已经提交的数据;
  4. 如果某个新进入的或者长期宕机的follower起来之后,会跟leader的当前commit log开始比对,发现缺失或者不一致的就一致向前回溯,直到找到一个一直点开始向后同步
  5. 这就要求潜在的leader上只记录commit的log。也就是说在选举过程中,如果一个candidate的log,没有前面epoch 已经commit的log,在向其他节点申请选票时会被拒绝,这个candidate是无法赢得选举的。

与paxos的相比,raft设计的更为简单,容易被软件工程师所理解,更容易编码实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值