分布式系统原理
CAP 理论
CAP 理论是由 Eric Brewer 提出的分布式系统中最为重要的理论之一[8]。本文将 CAP 理论安排在原理部分的最后介绍是为了利用前面已经介绍过的几种分布式协议来帮助理解 CAP 理论。
1. 定义
CAP 理论的定义很简单,CAP三个字母分别代表了分布式系统中三个相互矛盾的属性:
Consistency (一致性):CAP 理论中的副本一致性特指强一致性(1.3.4 );
Availiablity(可用性):指系统在出现异常时已经可以提供服务;
Tolerance to the partition of network (分区容忍):指系统可以对网络分区(1.1.4.2 )这种异常情况进行容错处理;
CAP 理论指出:无法设计一种分布式协议,使得同时完全具备 CAP 三个属性,即 1)该种协议下的副本始终是强一致性,2)服务始终是可用的,3)协议可以容忍任何网络分区异常;分布式系统协议只能在 CAP 这三者间所有折中。
CAP 理论的详细证明可以参考相关论文。这里可以简单用一个反例证明不存在 CAP 兼具的系统。假设系统只有两个副本 A 和 B,Client 更新这两个副本,假设在网络分化时,Client 与副本 A 可以正常通信,但副本 B 与 Client、副本 B 与副本 A 无法通信,此时,Client 对副本 A 更新的信息永远无法同步到副本 B 上。如果希望系统依旧具有强一致的属性,则此时需要停止更新服务,即不 再修改数据&#x