分布式理论(五)Paxos算法

世界上只有一种一致性算法,就是paxos算法。

 

        常见的一致性算法有 Paxos、Raft等, Paxos协议是 Leslie Lamport于1990年提出的一种基于消息传递的、具有高度容错特性的一致性算法。Paxos算法解决的主要问题是分布式系统内如何就某个值达成一致。在相当长的一段时间内, Paxos算法几乎成为一致性算法的代名词,但是 Paxos有两个明显的缺点:第一个也是最明显的缺点就是 Paxos算法难以理解, Paxos算法的论文本身就比较晦涩难懂,要完全理解 Paxos协议需要付出较大的努力,很多经验丰富的开发者在看完 Paxos论文之后,无法将其有效地应用到具体工程实践中,这明显增加了工程化的门槛,也正因如此,才出现了几次用更简单的术语来解释 Paxos的尝试。 Paxos算法的第二个缺点就是它没有提供构建现实系统的良好基础,也有很多工程化 Paxos算法的尝试,但是它们对 Paxos算法本身做了比较大的改动,彼此之间的实现差距都比较大,实现的功能和目的都有所不同,同时与 Paxos算法的描述有很多出入。例如,著名 Chubby,它实现了一个类 Paxos的算法,但其中很多细节并未被明确。

        正因为上述的缺点,导致 Paxos协议处于一种比较尴尬的境地:在理论上 Paxos算法是正确可行的,但是实际的工程中很少有与 Paxos算法类似的实践。很多工程实践(包括上面提到的 Chubby)都是从 Paxos协议的研究开始的,然后在实践的过程中发现很多难题,之后通过各种技巧和手段进行改进,最后开发出一种与 Paxos明显不同的东西,这就导致最终开发出来的程序建立在一个未经证明的协议之上。也正因为如此,人们开始寻找新的一致性算法,寻找的结果也就是下一节介绍的—Raft协议。

        若有读者想要深究,请移步到下面的参考链接中。

 

参考:

《etcd技术内幕》第二章 - Raft协议

如何浅显易懂地解说 Paxos 的算法?:https://www.zhihu.com/question/19787937

分布式理论(五)—— 一致性算法 Paxos:https://www.cnblogs.com/stateis0/p/9062130.html

你可能感兴趣的:(分布式随笔,分布式,Paxos算法)