1. 概述
- Consistency
- Availability
- Partition tolerance
2. 关系
它们的第一个字母分别是 C、A、P。Eric Brewer 说,这三个指标不可能同时做到,这个结论就叫做 CAP 定理。一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。CAP 定理告诉我们,剩下的 C 和 A 无法同时做到。
3. 一致性C 和可用性A,为什么不可能同时成立?
答案很简单,因为可能通信失败(即出现分区容错 P)。如果保证 G2 的一致性C,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写,没有可用性A。如果保证 G2 的可用性A,那么势必不能锁定 G2,所以一致性C不成立。综上所述,G2 无法同时做到一致性C和可用性A。系统设计时只能选择一个目标。如果追求一致性C,那么无法保证所有节点的可用性A;如果追求所有节点的可用性A,那就没法做到一致性C。
参考文章