分布式一致性协议之Paxos算法
最近特别喜欢一句话:实践是最好的成长,发表是最好的记忆。
笔者在今年国庆7天没有回家,累计有6天的时间是在公司度过,要么写博客,要么看书。我记得当时写的关于分布式系统一致性的原理和实践。作者是倪超。书名《从Paxos到Zookeeper分布式一致性原理与实践》。当时就想要通过发表Paxos来跟自己做心灵的对话。可是,实在扛不下去。于是放弃。
今天又是周五,于是重新翻开已经尘封了2个礼拜的博客。再一次启程。
于是想用开头提到的两句话来勉励自己:实践是最好的成长,发表是最好的记忆。哪怕是工作再忙,心情有多糟。再没有写作灵感。每天也要坚持去写1000个字以上。
什么是Paxos算法
二阶段提交协议和三阶段提交协议都能够在一定程度上解决了分布式系统的问题,可是但也存在了一定的问题。而Paxos是一种基于消息传递且具有高度容错性的一致性算法。Paxos算法需要就是如何在一个可能发生的异常的分布式系统中,快速且正确的在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常都不会破坏整个系统的一致性。
在古希腊有一个叫作Paxos小岛,岛上采用议会的形式听过法令,议会中的议员通过信使进行消息的传递。议员和信使都是兼职,他们随时有可能离开大厅,并且信使可能会重复传递消息,也可能一去不复返。因此,议会协议要保证在这种情况下法令仍然能够正确的产生,并且不会发生冲突。
古希腊的故事也是Paxos的精髓所在。
Paxos算法详解