CAP¶
概念¶
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)三个基本需求,但最多只能同时满足 2 个。
- Consistency(一致性):指数据在多个副本之间能够保持一致的特性(严格的一致性)
- Availability(可用性):指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应(不保证获取的数据为最新数据)
- Partition tolerance(分区容错性) 分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障
假设两个节点断开连接(分区容错性),只能二选一:
- 牺牲数据一致性,保证可用性。响应旧的数据给用户。
- 牺牲可用性,保证数据一致性。阻塞等待,直到网络连接恢复。