CAP定理

1. 什么是CAP定理呢?

CAP定理是指在一个分布式系统中,一致性(Consistency),可用性(Availability),分区容错性(Partition Tolerance)三者不可兼得。

  • 一致性:分布式系统中多个主机之间是否能够保持数据一致性。就是,当系统数据更新操作后,各个主机之间仍然处于一致的状态。
  • 可用性:系统提供的服务必须一直处于可用的状态,就是对于用户的每一个请求,系统总是可以在有限的时间内对用户进行响应。
  • 分区容错性:分布式系统在遇到任何网络分区故障时,仍然保证对外提供满足一致性和可用性的服务。

而对于分布式系统来说,完网络环境相对时不可控的,出现网络分区的不可避免的,因此系统必须具备分区容错性。但是不能同时保证一致性和可用性,要么CP,要么AP。这就是CAP定理。

2. BASE理论

BASE是基本可用,软状态,最终一致性三个短语的缩写。BASE是对CAP中一致性和可用性权衡的结果。其中源于大规模互联网分布式实践的结论,是基于CAP定理演化而来。
BASE理论的核心就是,即使无法做到强一致性,但是可以根据每个业务的特点,采用适当的方式达成最终一致性。

  • 基本可用:在分布式出现不可预知的故障时,允许损失部分可用性。
  • 软状态:允许系统数据存在的中间状态,时一种灰度状态,过度状态。
  • 最终一致性:经过一段时间后,最终达到一致的状态。

3. CAP的应用

  1. Zookeeper与CAP:CP模式
  2. Consul与CAP:CP模式
  3. Redis与CAP:AP模式
  4. Eureka与CAP:AP模式
  5. Nacos与CAP:默认AP,也支持CP