一:简介
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。
一般来讲,在高并发情况下,cap三者选其二,但实际上只有两种选择,一种为cp,一种为ap。
二: Partition tolerance
先看 Partition tolerance,中文叫做"分区容错"。
系统如果不能在时限内达成数据一致性,意味着发生了分区的情况,需要在C和A作选择.
大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。
上图中,G1 和 G2 是两台跨区的服务器。G1 向G2 发送一条消息,G2 可能无法收到。系统设计的时候,必须考虑到这种情况。
一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。CAP 定理告诉我们,剩下的 C 和 A 无法同时做到。
三: Consistency
Consistency中文叫做"一致性"。意思是,写操作之后的读操作,必须返回该值。举例来