Paxos算法是为了实现分布式环境中为保证数据的一致性而设计的,在一个分布式系统中,通过投票的方式来确定一个值(决议)。只不过这个步骤分为两步:
准备阶段(prepare)和批准阶段(accept)。
同时又分为若干角色,以下都可以兼任。
proposer 信使
acceptor 决策者
learner 学习者(学习最终决策)
准备阶段:
一个proposer向多个acceptor发出提案,每个提案有一个数字编号(递增的),
如果多数acceptor接受了该提案,则进入批准阶段. 当然也可以拒绝。
批准阶段:
proposer得到了多数acceptor的接收反馈后,就向这些acceptors发起批准请求, 包括提案编号和value。
这些acceptor决定是否接受这个请求。
一旦批准,learner会通过某种方式获得最终决策的value.
两阶段的是可以被中断的,不会造成不一致。
如果要深究算法,请参考http://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95
时间: 2024-11-10 01:32:31