Raft协议详解(一)前言:子问题分解

      分布式一致性,一直是分布式系统中非常重要的部分。在多机集群中,如何保证不同服务器上同一副本的数据是一致正确的,如何保证在故障频发的集群中数据能够安全保存等问题,都需要靠分布式一致性来解决。在对分布式一致性算法进行设计的时候,存在如下几点需要注意的地方:
1. 算法的正确性保证,不论在丢包、宕机、延迟等情况,都不能返回错误的结果
2. 只要大部分机器可以用,那么算法就可以正常运行
3. 不依靠时序来保证一致性
4. 收敛速度应该比较快,能尽快在大部分上机器完成,少部分没有完成的不影响算法使用

(我知道上面这几句有点不是很好理解,后面我尽量只讲好理解的)

      很多一致性算法来进行保证分布式一致性问题。比如很出名的Paxos协议,Google的分布式锁Chubby就是基于Paxos实现的,还有Zookeeper等。但是Paxos的问题在于比较难以理解,实现起来非常困难。即使基于Paxos的Zookeeper和Chubby,其实现和Paxos仍然有一定的出入。这就导致了一个非常严重的问题,就是你的实现没有按照完整的Paxos实现的话,那么你的方法就没有被理论所很好的支撑,可能你的实现就会出现很多问题。

      那么,基于这个问题呢,斯坦福的大佬们就提出了Raft算法。这个算法和Paxos其实在功能上,和性能上差不多。好处就是便于理解以及工程实现。当前也有挺多公司采用Raft算法,但是其实这个算法在实际的应用场景下,还存在一定的问题。比如阿里也在使用Gossiping算法。这里我们就不在多加讨论。我们这个文章系列还是对Raft进行学习。文章内容基于该算法发表的论文,小伙伴们也可以去读一下论文原文。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值