摸一摸 CAP 理论的本质

8 阅读1分钟

前言

本篇文章只在理论层面,明确 CAP 理论是针对的对象。去伪存真。

通用语言表达

CAP 定理表达了一个分布式系统里不可能同时满足以下的三个特性:

  • C:数据强一致性
  • A:可用性
  • P:分区容错性

CAP 理论针对的是分布式系统吗?

不是。

分布式系统,是 CAP 理论中一种场景,但是不是 CAP 理论针对的核心目标。

CAP 理论重点针对的是什么呢?

是一致性边界内数据的状态。

即具有一致性边界的数据,不能同时满足:

  • C:在一致性边界内的数据的变化具有原子性。
  • A:在一致性边界内的数据变化过程中,对系统内此数据的任何操作不产生副作用。
  • P 一致性边界内数据分散在不同的位置。

而不是分布式系统!

单体服务能同时满足 CAP ? 本地锁同时满足 CAP?? 数据库事务同时满足 CAP ? redis 单线程同时满足 CAP ? atomic.cas 同时满足 CAP?

都不能。

所以,再次强调,CAP 针对的是具有一致性边界的数据的状态。不是分布式系统。