CAP 定理和 BASE 理论?
高可用面试题发布于
一、CAP 定理
分布式系统不可能同时满足三个特性,最多满足两个:
- Consistency(一致性):所有节点同一时刻看到相同数据。
- Availability(可用性):每个请求都能收到响应(不一定是最新数据)。
- Partition tolerance(分区容错性):网络分区时系统仍能运行。
二、CP 系统
- 保证一致性和分区容错,牺牲可用性。
- 网络分区时拒绝服务。
- 如 ZooKeeper、HBase、MongoDB(强一致模式)。
三、AP 系统
- 保证可用性和分区容错,牺牲一致性。
- 网络分区时仍响应,但可能返回旧数据。
- 如 Eureka、Cassandra、DynamoDB。
四、为什么 P 必须选
分布式系统网络分区不可避免,所以 P 必须满足,只能在 C 和 A 之间选择。
五、BASE 理论
CAP 的延伸,适合大规模分布式:
- Basically Available(基本可用):允许损失部分可用性。
- Soft state(软状态):允许中间状态。
- Eventually consistent(最终一致):最终达到一致。
六、应用
- 支付、交易 → 强一致(CP)。
- 社交、电商详情页 → 最终一致(AP)。