CAP内容解释
- 一致性(Consistency),即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,也就是数据一致性。从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。包括:强一致性,要求更新过的数据能被后续的访问都能看到;弱一致性,能容忍后续的部分或者全部访问不到;最终一致性,经过一段时间后要求能访问到更新后的数据。
- 可用性(Availability),指服务一直可用,也就是客户端访问哪个机器都可以正常响应。淘宝的系统可用性可以达到5个9(99.999%,及高可用性)。
- Partition Tolerance(分区容错,节点通讯失败不受影响),分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
CAP定理解释
三者不可能同时满足(C指的是强一致性)。假设两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。