1.5 KiB
Executable File
1.5 KiB
Executable File
CAP 定理
Brewer's Theorem — 分布式计算系统的基本原则
定理内容
一个分布式系统不可能同时满足以下三点:
| 特性 | 说明 |
|---|---|
| 一致性 (Consistency) | 所有节点在同一时间具有相同的数据 |
| 可用性 (Availability) | 保证每个请求都有响应(成功或失败) |
| 分区容忍 (Partition Tolerance) | 系统中任意信息丢失或失败不影响系统继续运行 |
CAP 三角
C
/\
/ \
/ \
/ P \
/________\
A
核心:分布式系统最多只能同时满足 两个 特性。
三类系统
CA — 一致性 + 可用性
- 单点集群
- 不具备分区容错能力
- 例子:传统 RDBMS(MySQL、PostgreSQL)
CP — 一致性 + 分区容忍
- 牺牲可用性
- 网络分区时可能不可用
- 例子:MongoDB、HBase、Redis
AP — 可用性 + 分区容忍
- 牺牲一致性
- 分区期间保持可用,数据可能不一致
- 例子:Cassandra、DynamoDB
选择指南
| 场景 | 选择 |
|---|---|
| 金融交易、银行系统 | CP(强一致性) |
| 社交媒体、新闻 Feed | AP(高可用) |
| 需要强一致的传统业务 | MySQL/PostgreSQL |
NoSQL 数据库分类
| 类型 | 数据库 |
|---|---|
| CA | 传统关系型数据库 |
| CP | MongoDB、HBase、Redis |
| AP | Cassandra、DynamoDB、CouchDB |