分布式笔记(二)一致性协议
2017-10-25 17:00
169 查看
一致性协议
一、2PC与3PC
请自行回忆2PC与3PC的过程,及在正式提交阶段的处理单点问题的区别。分析各自的优缺点。
二、Paxos算法
一)Paxos算法解决的问题:分布式系统中如何对一个问题达成共识。
二)从提案到表决流程涉及到的角色:
1.提案者(Propser):负责提出议案,可能有多个。
2.接受者(Accpter):对指定的提案进行表决,一定有多个。
3.学习者(Learner):收集接受者对提案的表决,根据少数服从多数原则,形成最终提案表决。
三)Paxos算法描述
- 第一阶段(Prepare阶段)
Proposer:
- 选取提案编号n,并向大多数Acceptor发送携带编号n的prepare请求。
Acceptor:
- 如果收到的提案编号n比自己已经收到的编号都要大,则向Proposer承诺不再接收编号小于n的提案,如果之前接受过提案,则同时将接受的提案中编号最大的提案及其编号发给Proposer。
- 如果收到的提案编号n小于自己已经收到提案编号的最大值,则拒绝。
Proposer:
- 首先,对接收到响应,逐条处理:
- 如果接收到拒绝,则暂不处理。
- 如果接收到同意,同时还接收到Acceptor已经接受的提案,则记下该提案及编号。
- 如果大多数拒绝,则准备下次提案。
- 如果大多数同意,从这些Acceptor已经接受的提案中选取提案编号最大的提案作为自己的提案,没有则使用自己的提案,逐个向Acceptor发送Accept消息。
Acceptor:
- 如果收到的提案编号n小于自己已经收到最大提案编号,则拒绝。
- 如果收到的提案编号n等于自己已经收到最大提案编号,则接受该提案。
- 如果收到的提案编号n大于自己已经收到最大提案编号,则拒绝。
Acceptor:
- 每当接受一个提案,则将该提案及编号发给Learner。
Learner:
- 记录每一个Acceptor当前接受的提案,一个Acceptor先后发来多个提案,则保留编号最大的提案。
- 统计每个提案被接受的Acceptor个数,如果超过半数,则形成共识。
更多:https://www.zhihu.com/question/19787937
相关文章推荐
- (笔记)理解和学习分布式一致性协议:raft
- 分布式一致性协议学习笔记(一)--Paxos
- 分布式系统一致性协议--Paxos算法
- Zookeeper - 简述分布式一致性协议(2pc、3pc、paxos、zab)
- 分布式多副本一致性协议:paxos
- Memcached 介绍 协议 结构 分布式 一致性
- 分布式一致性协议Raft原理与实例
- 关于分布式事务、两阶段提交协议、三阶提交协议(2pc 3pc 都无法保证彻底一致性,除了Paxos 协议)
- 简化版分布式文件一致性协议---paxos
- 图解分布式一致性协议Paxos
- 分布式系统理论(二):一致性协议Paxos
- 分布式系统基本概念(一致性、数据分布、复制策略、分布式协议)
- 分布式事务及其一致性协议
- 分布式多副本一致性协议paxos
- 分布式一致性协议 Raft distribute protocol
- 分布式一致性协议
- 2-分布式一致性协议
- 分布式一致性协议在MongoDB选举中的应用
- 四:分布式事务一致性协议paxos通俗理解
- 分布式一致性协议Raft原理与实例