CAP 代表 Consistency(一致性), Availability(可用性)和 Partition tolerance(分区容忍性)。
注意:这里的 Consistency 与 ACID 里的数据一致性(C)概念不一样。
这里指分布式节点拥有相同的数据副本。
CAP 定理断言,任何一个分布式系统都不可能同时满足 C-A-P 三个特性:
- C — 从每个节点读到相同的数据。
- A — 从任何位置发起的读写请求都能够成功返回。
- P — 即使出现分区(部分隔离),也能响应请求。
基于对一致性 C、可用性 A、分区容忍性 P 的权衡与取舍,就产生了很多不同的数据库:
- CA:MySQL、SQLServer、PostgreSQL、Oracle
- CP:HBase、MongoDB、Redis
- AP:Cassandra、CouchDB、Riak