It is impossible for a web service to provide the three following guarantees : Consistency, Availability and Partition-tolerance.
一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
- Consistency(一致性):数据一致更新,所有数据变动都是同步的。
- Availability(可用性):好的响应性能。在集群中一部分节点故障后还能响应用户的读写请求。
- Partition tolerance(分区容错性):可靠性
CPA理论:在分布式系统中,最多只能满足以上两点,没法三者兼顾。
因此,架构师不应将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。