分布式系统不可能同时满足三个条件:
- 一致性(Consistency):每次都能读到最新数据,读不到则返回错误。
- 可用性(Availability):每次请求都能获得响应,返回数据(不是错误)。
- 分区容忍(Partition tolerance):可靠性。其中一个坏了还可以继续使用。
CA
- 关注一致性和可用性。
- 一致性协议,如两阶段提交(2PC)。
- 一旦有网络问题或是结点错误,系统会拒绝请求。
CP
- 关注一致性和分区容忍性
- 大多数结点的数据一致性(如Paxos算法)
- 少数结点在没有同步到数据时变为不可用状态(部分可用性)
AP
- 关注可用性和分区容忍性
- 不能达成一致性
- 数据冲突,要维护数据版本
网友评论