关于paxos协议,看了很多资料,很少有流程图资料,试了画了一个,方便理解。如有错误欢迎指正。
一、节点角色
proposer:提案者-可以有多个, 但每一轮只能有一个被批准
acceptor:批准者- Proposer 提出的 value 必须获得超过半数(N/2+1)的 Acceptor批准后才能通过。
learner:学习者-学习被批准的value
二、流程图

三、实例演示
实例1:假设有有5 个 Acceptor,1 个 Proposer,不存在任何网络、宕机异常。我们着重考察各个Accpetor 上变量 B 和变量 V 的变化,及 Proposer 上变量 b 的变化。
1. 初始状态
2. Proposer 向所有 Accpetor 发送“Prepare(1)”,所有 Acceptor 正确处理,并回复 Promise(1, NULL)
3. Proposer 收到 5 个 Promise(1, NULL),满足多余半数的 Promise 的 value 为空,此时发送
Accept(1, v 1 ),其中 v

本文通过图表和实例详细解释了Paxos协议的工作原理,包括节点角色、流程图和多个运行实例,展示了在正常和异常情况下如何保证一致性。同时提到了Zookeeper使用的ZAB协议与其区别。
最低0.47元/天 解锁文章
9621

被折叠的 条评论
为什么被折叠?



