Raft 与 Paxos的区别

Raft

Raft概述

        Raft一致性算法用于保证在分布式的条件下,所有的节点可以执行相同的命令序列,并达到一致的状态。这类的问题可以归结为“Replicated state machines”问题。

关于Raft一致性协议的概要

Raft一致性算法的保证

关于Raft一致性协议的概要

Raft特点

        相比于Paxos,Raft最大的特点就是可理解性。相信读过Paxos论文的人应该对此深有体会。

Raft把一致性问题,分解成三个比较独立的子问题,并给出每个子问题的解决方法:

选举:描述Raft是如何选择一个leader的,这个部分很受容易理解了。

日志复制:描述Raft的leader是如何把日志复制到集群的各个节点上的。

安全性:描述Raft是如何保证“State Machine Safety Property”。

参考

官方资源(包括了论文、各个语言的实现、一些学习视频)

根据Raft论文整理的一个中文文章

一个概括性的中文PPT

中文翻译

Paxos

概述

Paxos 协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(决议)的通信协议。它能够处理在少数派离线的情况下,剩余的多数派节点仍然能够达成一致

paxos两阶段提交

        总体说来,paxos就是通过两个阶段确定一个决议:
Phase1:确定谁的编号最高,只有编号最高者才有权利提交proposal;
Phase2:编号最高者提交proposal,如果没有其他节点提出更高编号的proposal,则该提案会被顺利通过;否则,整个过程就会重来。

        你编号高,我比你更高,反复如此,算法永远无法结束,这叫活锁。FLP Impossibility已经证明,在异步通信中不存在任何一致性算法,活锁便是Paxos无法解决的硬伤。

        Phase1,Phase2非常像2PC中的两个阶段,因此paxos本质上是多个2PC交替执行!
另外,即使你明白了,在实现时会知道有多难,工程实现与理论差距很大!

转载于:https://my.oschina.net/cloudcoder/blog/711503

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值