前言总结
- C: 一致性(consistency),一个分布式系统的多台服务器,只要能够提供服务,则提供的数据都一致的
- A: 可用性(availiability),一个分布式系统的多台服务器,在任何时刻都可以对外提供服务
- P:分区容忍性(partition tolerance),一个分布式系统的多个服务器,即使发生了分区,分成了两个或者多个独立集群,扔然可以对外提供服务
示例
![](https://img.haomeiwen.com/i2897862/358c7f979943c9c6.png)
如图所示,资源管理器集群由 AB 两个服务器组成。
- 实现一致性:用户写入 A 服务器,并从 B 服务器读取数据,则如果要保持一致性,服务器 B 就需要一定时间延迟从 A 服务器同步数据,在同步数据时,B 无法对外提供服务。
- 实现可用性:用户写入 A 并立即读取 B,则 B 返回的一定是旧数据,则时候保证了可用性但无法保证一致性
- 实现分区容忍性:用户写入 A 并立即读取 B,如果 AB 断开了,也就是分成了两个独立的区域,则从 B 读取的一定是旧数据,这时候不可能实现一致性
同时实现两个
- 同时实现可用性和分区容忍性:无需同步,访问即返回旧数据,无法保证可用性
- 同时实现一致性和分区容忍性,不管怎么分区,只保留一个分区对外提供服务,其他分区全部不可用
- 同时实现一致性和可用性:就只提供一个节点,这时候肯定无法满足分区容忍性,因为无法分区
网友评论