Raft共识算法入门教程


1 分布式基础概念

    1.1  数据副本与一致性问题

    1.2  分布式系统的进化史

    1.3  全面解读CAP定理

    1.4  CAP理论为什么不能同时满足?

    1.5  BASE原则

2 全面解读Raft共识算法

    2.1  全面解读Raft共识算法

    2.2  Raft日志的作用

    2.3  Raft日志复制

    2.4  Raft共识算法是否属于二阶段提交?

    2.5  Raft算法中的三种超时时间

    2.6  Raft算法动图展示

3 实战操练Raft共识算法

CAP理论为什么不能同时满足?

1、CAP理论是什么?

CAP定理,又称CAP原则,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP定理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

2、CAP理论为什么不能同时满足?

2000年的时候,加州大学伯克利分校的光头教授Eric Brewer提出了CAP猜想:CAP永远不可能同时满足,提高其中任意两者的同时,必然要牺牲第三者。这个定理告诉大家,不要再浪费时间去研究如何兼顾了,因为这根本就是不可能的,只能根据具体应用,来决定如何在三者之间进行取舍。

后来,CAP猜想由麻省理工学院的两位科学家证明。CAP猜想的证明相对比较简单:采用反证法,如果三者可同时满足,则因为允许P的存在,一定存在节点之间的丢包,如此则不能保证C,证明简洁而严谨。从此,CAP理论正式在学术上成为了分布式计算领域的公认定理,并深深的影响了分布式计算的发展。

3、CAP理论后记

在CAP理论提出十二年之后,Eric Brewer教授又出来辟谣:“三选二”的公式一直存在着误导性,它会过分简单化各性质之间的相互关系。这三种性质都可以在某种程度上进行衡量,并不是非黑即白的有或无。可用性显然是在0%到100%之间连续变化的,一致性分很多级别,连分区也可以细分为不同含义,如系统内的不同部分对于是否存在分区可以有不一样的认知。所以,一致性和可用性并不是水火不容,非此即彼的。