Paxos算法介绍

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






你可能感兴趣的:(#,zookeeper)