分布式一致性协议
先是给所有人发一个 proposal,半数成功之
后就是给所有人发 commit
zookeeper 用的是 zab 协议而不是 paxos 算法.
paxos 算法
https://www.zhihu.com/question/19787937
https://zhuanlan.zhihu.com/p/31780743
Proposer: 提出提案 (Proposal) 。Proposal 信息包括提 案编号 (Proposal ID) 和提议的值
(Value)。
Acceptor:参与决策,回应 Proposers 的提案。收到 Proposal 后可以接受提案,若 Proposal
获得多数 Acceptors 的接受,则称该 Proposal 被批准。
Learner:不参与决策,从 Proposers/Acceptors 学习最新达成一致的提案(Value)
第一阶段:Prepare 阶段。Proposer 向 Acceptors 发出 Prepare 请求,Acceptors 针对收到的
Prepare 请求进行 Promise 承诺。
第二阶段:Accept 阶段。Proposer 收到多数 Acceptors 承诺的 Promise 后,向 Acceptors 发出
Propose 请求,Acceptors 针对收到的 Propose 请求进行 Accept 处理。
第三阶段:Learn 阶段。Proposer 在收到多数 Acceptors 的 Accept 之后,标志着本次 Accept
成功,决议形成,将形成的决议发送给所有 Learners。
谁的 proposal 大谁吊
评论0