分布式基础理论——CAP理论和BASE理论

文章目录

      • [CAP 理论](#CAP 理论)
      • [BASE 理论](#BASE 理论)
      • 参考资料

CAP 理论

CAP定理(CAP theorem)指出,在分布式系统中,设计读写操作时只能同时满足以下三个特性中的两个:

  • 一致性(Consistency) : 所有节点访问同一份最新的数据副本。需要强调的是,这里的一致性指的是线性一致性。
  • 可用性(Availability): 非故障的节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
  • 分区容错性(Partition Tolerance) : 在出现网络分区的时候,节点之间的通信出现失败的情况,分布式系统仍然能够对外提供服务。

注意,这里的"三选二" 理解如下:

  • 在CAP理论中,分区容错性(P)是必须满足的。因为在大规模分布式系统中,网络分区是不可避免的。

  • 在满足分区容错性的前提下,分布式系统只能在一致性(C)和可用性(A)之间进行权衡。

  • 当网络分区正常(即系统在大多数时间内处于稳定的网络状态)时,C 和 A 是可以同时满足的,因为此时无需考虑分区容错性(P)的影响。

因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构。因为 CA 架构的系统不再是标准的分布式系统,主数据库和从数据库不在进行同步。

  • CP 架构案例:ZooKeeper、HBase、Nacos
  • AP 架构案例:Cassandra、Eureka、Nacos

BASE 理论

BASE(Basically Available, Soft State, Eventually Consistent) 是 CAP 理论中 AP 方案的延伸,通过牺牲强一致性来获取可用性,但会保证最终一致性。由于分布式系统在CAP理论中最多只能同时满足两个特性,在实际场景中,大多数分布式系统会选择AP方案,即牺牲强一致性以确保系统的可用性和分区容错性。然而,在这种架构设计中,系统通常会采用最终一致性策略。最终一致性允许多个节点的数据在短时间内存在差异,但经过一段时间后,这些数据会自动同步,最终达到一致的状态。

BASE(BasicallyAvailable, Soft State, Eventually Consistent) 的具体特点如下:

  • Basically Available(基本可用):系统保证在大多数情况下可用,即便在某些异常情况下,部分功能可能无法正常工作,但不会导致整个系统不可用。例如,在线购物平台在高峰期可能会延迟订单处理,但用户仍然能够浏览商品和提交订单。
  • Soft State(软状态):系统中的数据状态可以在某个时间点不同步,允许不同节点之间的数据存在短暂的不一致性。这种不一致性是暂时的,最终会被解决。
  • Eventually Consistent(最终一致性):虽然系统可能在一段时间内处于不一致的状态,但经过一段时间后,所有数据节点最终会达到一致的状态。这意味着系统不会始终保持一致性,但在没有进一步的输入时,最终会达到一致性。

参考资料

《深入理解分布式系统 唐伟志》

《深入理解分布式事务:原理与实战 肖宇》

CAP & BASE理论详解 | JavaGuide

相关推荐
qq_12498707535 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
Coder_Boy_8 小时前
基于Spring AI的分布式在线考试系统-事件处理架构实现方案
人工智能·spring boot·分布式·spring
袁煦丞 cpolar内网穿透实验室9 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
人间打气筒(Ada)9 小时前
GlusterFS实现KVM高可用及热迁移
分布式·虚拟化·kvm·高可用·glusterfs·热迁移
xu_yule9 小时前
Redis存储(15)Redis的应用_分布式锁_Lua脚本/Redlock算法
数据库·redis·分布式
難釋懷13 小时前
分布式锁的原子性问题
分布式
ai_xiaogui15 小时前
【开源前瞻】从“咸鱼”到“超级个体”:谈谈 Panelai 分布式子服务器管理系统的设计架构与 UI 演进
服务器·分布式·架构·分布式架构·panelai·开源面板·ai工具开发
凯子坚持 c15 小时前
如何基于 CANN 原生能力,构建一个支持 QoS 感知的 LLM 推理调度器
分布式
飞升不如收破烂~15 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式