一、为啥要研究paxos
最近在研究zookeeper源码,zk的并本质就是一个分布式数据库,如何保证分布式的一致性呢?深究下去,踩进了一个大坑:paxos算法。有坑了就趟吧,找论文、看文档,一会儿似乎柳暗花明,一会儿又一脸蒙逼:我是谁?我在干什么?下面分享一些个人的理解,也有摘抄(感谢那些分享者)。
二、Paxos解决的问题
分布式数据一致性,可以联系多线程下各线程的通讯模型,基于内存或者基于消息传递的。Paxos算法是基于消息传递的。
三、用一些轮子来理解Paxos
Paxos算法网上已经有很多解析的了,下面就组合各种轮子。
1、Paxos原则:
在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。
2、原理解析,请看下面几个轮子:
http://blog.csdn.net/dellme99/article/details/14162159
http://blog.csdn.net/michaelyang_yz/article/details/53005451
http://blog.csdn.net/fei33423/article/details/52275166
关于如何选举,这里讲的不错:
https://www.cnblogs.com/cchust/p/5617989.html