分布式架构的一致性
Paxos Paxos算法是Leslie Lamport在1990年提出的一种基于消息传递的一致性算法。由于算法难以理解,起初并没有引起大家的重视,Lamport在1998年将论文重新发表到TOCS上,即便如此Paxos算法还是没有得到重视,2001年Lamport用可读性比较强的叙述性语言给出算法描述。 06年Google发布了三篇论文,其中在Chubby锁服务使用Paxos作为Chubby Cell中的一致性算法,Paxos的人气从此一路狂飙。 基于Paxos协议的数据同步与传统主备方式最大的区别在于:Paxos只需超过半数的副本在线且相互通信正常,就可以保证服务的持续可用,且数据不丢失。 Basic-Paxos Basic-Paxos解决的问题:在一个分布式系统中,如何就一个提案达成一致。 需要借助两阶段提交实现: Prepare阶段: Proposer选择一个提案编号n并将prepare请求发送给 Acceptor。 Acceptor收到prepare消息后,如果提案的编号大于它已经回复的所有prepare消息,则Acceptor将自己上次接受的提案回复给Proposer,并承诺不再回复小于n的提案。 Accept阶段: 当一个Proposer收到了多数Acceptor对prepare的回复后,就进入批准阶段