# CAP定理

> 在理論計算機科學中，CAP定理（CAP theorem），又被稱作布魯爾定理（Brewer's theorem），它指出對於一個分布式计算系統來說，不可能同時滿足以下三點： 一致性（Consistency） 所有节点访问同一份最新的数据副本 可用性（Availability） 每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据 分区容错性（Partition tolerance） 以实际效果而言，分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性，就意味着发生了分区的情况，必须就当前操作在C和A之间做出选择。 理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许…

- ID: m02099
- 分类: system
- 领域: 系统论

## 定义

在一个分布式系统（如区块链、云数据库）中，无法同时满足以下三点，最多只能三选二： 1. 一致性 (Consistency)： 所有节点在同一时刻看到的数据是一样的。 2. 可用性 (Availability)： 系统每次请求都能得到响应（不会挂掉）。 3. 分区容错性 (Partition Tolerance)： 即使网络故障导致节点间无法通信，系统依然能运行。

## 机制

基于"分布式不可能三角"。网络分区(P)不可避免，故实际在 C 与 A 间权衡；分区时要么一致(牺牲可用)要么可用(牺牲一致)。

## 练习

1. 确认需分区容错(P)。2. 选 C 或 A。3. CP 系统(如 ZooKeeper)保一致。4. AP 系统(如 Cassandra)保可用。5. 按业务定。

## 脚手架用法

在理論計算機科學中，CAP定理（CAP theorem），又被稱作布魯爾定理（Brewer's theorem），它指出對於一個分布式计算系統來說，不可能同時滿足以下三點： 一致性（Consistency） 所有节点访问同一份最新的数据副本 可用性（Availability） 每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据 分区容错性（Partition tolerance） 以实际效果而言，分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性，就意味着发生了分区的情况，必须就当前操作在C和A之间做出选择。 理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许…

[阅读网页](https://thinkingmodels.site/entries/detail/m02099)
