始于足|

MuXinu

园龄:2年7个月粉丝:3关注:1

分布式系统理论 中CAP理论和BASE理论

CAP 理论

CAP(Consistency, Availability, Partition Tolerance)理论是由计算机科学家 Eric Brewer 提出的,主要用于描述分布式系统在一致性、可用性和分区容忍性之间的权衡关系。

CAP 三要素

  1. 一致性(Consistency)

    • 所有节点在同一时间看到的数据保持一致,即读取的值要么是最新写入的值,要么是错误的(不可用)。
    • 强一致性(Strong Consistency)要求所有副本的状态必须同步更新。
  2. 可用性(Availability)

    • 任何非故障节点都必须在有限时间内响应请求,即使发生了故障或网络分区。
    • 允许不同节点返回的值不同,但必须能返回结果。
  3. 分区容忍性(Partition Tolerance)

    • 系统必须能容忍网络分区(Partition),即部分节点之间的通信可能中断,但整个系统仍然能够继续运作。

CAP 的权衡

CAP 理论指出,在一个分布式系统中,不可能同时满足 一致性 (C)、可用性 (A) 和分区容忍性 (P),只能最多满足其中两项:

  • CP(一致性 + 分区容忍性):放弃可用性,保证数据一致性,但当发生网络分区时,部分节点可能无法提供服务。例如:Zookeeper。
  • AP(可用性 + 分区容忍性):放弃强一致性,允许不同节点的查询结果暂时不一致,但保证系统始终可用。例如:Cassandra、DynamoDB。
  • CA(一致性 + 可用性):不可能做到,因为任何分布式系统都需要容忍网络分区。

现实分布式系统通常选择 CPAP,因为网络分区是不可避免的。


BASE 理论

BASE(Basically Available, Soft state, Eventual consistency)理论是对 CAP 理论中 AP 方向的一种实践方案,特别适用于大规模高可用的分布式系统。

BASE 三要素

  1. 基本可用(Basically Available)

    • 系统允许出现部分功能的降级(如响应延迟、部分数据不可用),但整体仍然是可用的。
    • 例如,电商系统在高峰期可能关闭部分不重要的功能,如推荐系统,而核心交易系统仍然可用。
  2. 软状态(Soft state)

    • 允许系统中的数据在一段时间内不保持强一致性,不同节点上的数据可以存在临时不一致。
    • 例如,缓存和数据库数据可能有短暂不同步,但最终会达到一致状态。
  3. 最终一致性(Eventual consistency)

    • 系统不要求强一致性,但保证在一段时间后数据会最终达到一致状态。
    • 例如,DNS 系统允许不同服务器短时间内解析到不同的 IP 地址,但最终会保持一致。

BASE 与 CAP 的关系

  • BASE 主要是 CAP 理论中的 AP 方案的延伸,通过牺牲强一致性(C),实现高可用性(A)和分区容忍性(P)。
  • 适用于高并发、允许短暂数据不一致的应用,如 NoSQL 数据库(Cassandra、DynamoDB)、消息队列(Kafka、RabbitMQ)。

总结

理论 主要关注点 关键点 典型应用
CAP 分布式系统的三大特性(C、A、P) 不能同时满足 C、A、P,只能二选其二 Zookeeper(CP)、Cassandra(AP)
BASE 弱一致性、高可用性 允许数据短暂不一致,但最终一致 NoSQL(DynamoDB、Cassandra)、消息队列(Kafka)

CAP 强调理论上的约束,而 BASE 是在 CAP 框架下的一种工程实践,广泛应用于互联网大规模分布式系统。

本文作者:MuXinu

本文链接:https://www.cnblogs.com/MuXinu/p/18713073

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   MuXinu  阅读(7)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起