CAP 原则又称 CAP 定理,指在分布式系统中,Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)三者不可兼得.
CAP 原则是分布式系统的基石,在构建分布式系统时要根据实际需求进行取舍,而不是试图搭建一个完美的分布式系统
CAP
- Consistency 一致性: 所有节点在同一时间的数据完全一致.一致性可以分为以下三种:
- 强一致性: 更新操作后,后续操作一定取到的是更新后的结果
- 弱一致性: 更新操作后,后续操作可以容忍部分或全部没有更新
- 最终一致性: 更新操作后,在一段时间后要求能够取到更新后的结果
- Availability 可用性: 服务在正常响应时间内一致可用
- Partition Tolerance 分区容错性: 分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务
应用场景
- CA without P 放弃系统扩展性,不部署子节点,比如单节点的关系型数据库
- CP without A 在分布式服务器中保持强一致性,但可能会导致同步时间长,比如分布式数据库 redis
- AP without C 放弃一致性,保持高可用.每个节点使用本地数据提供服务.使得全局数据不一致.比如使用手机网购,可能浏览商品时还有货,但下单时系统告诉你下单失败.