CAP与BASE理论

CAP定理

一个分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个基本需求,最多只能满足其中的两项.

一般情况下,分区容错性是一个最基本的要求,其次才在可用性和一致性之间作出取舍。

一致性模型:

  • 弱一致性
    • 最终一致性:DNS、Gossip协议
  • 强一致性
    • 同步
    • Paxos
    • Raft
    • ZAB

BASE理论

BASE是Basically Available(基本可用)、Soft state(软状态)、Eventually Consistent(最终一致性)三个短语的简称,是对CAP中一致性和可用性权衡的结果,核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

基本可用:分布式系统在出现不可预知故障时,允许损失部分可用性。
弱状态:即软状态,允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性。
最终一致性:系统保证数据最终能够达到一致,而不需要实时保证系统数据的强一致性。

参考资料

  • 从 Paxos 到 ZooKeeper 分布式一致性原理与实践.倪超.电子工业出版社