前言
本篇文章只在理论层面,明确 CAP 理论是针对的对象。去伪存真。
通用语言表达
CAP 定理表达了一个分布式系统里不可能同时满足以下的三个特性:
- C:数据强一致性
- A:可用性
- P:分区容错性
CAP 理论针对的是分布式系统吗?
不是。
分布式系统,是 CAP 理论中一种场景,但是不是 CAP 理论针对的核心目标。
CAP 理论重点针对的是什么呢?
是一致性边界内数据的状态。
即具有一致性边界的数据,不能同时满足:
- C:在一致性边界内的数据的变化具有原子性。
- A:在一致性边界内的数据变化过程中,对系统内此数据的任何操作不产生副作用。
- P 一致性边界内数据分散在不同的位置。
而不是分布式系统!
单体服务能同时满足 CAP ? 本地锁同时满足 CAP?? 数据库事务同时满足 CAP ? redis 单线程同时满足 CAP ? atomic.cas 同时满足 CAP?
都不能。
所以,再次强调,CAP 针对的是具有一致性边界的数据的状态。不是分布式系统。