1、角色
Proposer(提议者):提出提案(proposal)。Proposal信息包含提案编号(Proposal ID)和提议的值(Value)
Acceptor(决策者):参与决策,回应Proposers的提案。收到Proposal后可以接受提案,若Proposal获得多数Acceptors的接受,则称该Proposal被批准。
Learner(最终决策学习者):不参与决策,从Proposers/Acceptors学习最终达成一致的提案(Value)
2、流程
Paxos算法通过一个决议分为两个阶段
- Prepare阶段:Proposer向Acceptors发出Prepare请求, Acceptors针对收到的Prepare请求进行Promise承诺
- Accept阶段:Proposer收到多数 Acceptors 承诺的Promise后,向Acceptors发出Propose请求,Acceptors针对收到的Propose请求进行 Accept处理
- Learn阶段:Proposer在收到多数Acceptors的Accept后,标志着本次Accept成功,决议形成,将形成的决议发送给所有Learners。
参考资料:
https://zhuanlan.zhihu.com/p/31780743
《Paxos Made Simple》