Paxos 算法 百科
Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。这个算法被认为是类似算法中最有效的。
Paxos 算法作用
在分布式系统中,一致性问题是在节点宕机、消息无序等场景可能出现的情况下,相互独立的节点之间如何达成决议的问题,作为解决一致性问题的协议,Paxos的核心是节点间如何确定并只确定一个值
算法思想
- 角色:
- client:产生议题者
- proposer: 提案者(提交议题到决策者)
- acceptor:决策者(决定提案者提交的议题是否被采纳)
- learner:学习者(决策采用后学习者)
- 流程图:
1.第一阶段:预提交 - Proposer做法
- 生成唯一的提案号 向 Acceptor提交该提案
- Acceptor:做法
- 如果Acceptor1未接收过提案记本地k==null则保存该次提案序号1,返回提案成功
- 如果Acceptor1本地k不为空且本地的提案号大于等于Proposer1本次提交的提案号,不做应答
- 若Acceptor1本地k不为空且Prop