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

    今天分享对分布式系统CAP理论和BASE理论的理解和认知,提升对分布式系统的架构认知。

    一直以来我们都是在不停的探究分布式系统,也在不停的做着系统实践,那么有没有真正的理解分布式系统的这套理论呢?我看未必,那就继续研究吧。

CAP理论

    分布式 CAP 理论指的是在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance),这三个特性在分布式系统下只能同时满足其中的两个,而不能三者兼备。(这个理论是由加州大学的计算机科学家 Eric Brewer 首次提出的,因此被称为 CAP 理论)。

具体来说:

  • 一致性(Consistency):在分布式环境中的所有节点,无论进行何种操作,最终都能看到所有的节点都是相同的数据状态。这意味着如果数据被更新,所有节点必须立即看到这些更新。一致性是数据存储的基本要求,但它可能会影响系统的可用性和分区容错性。

  • 可用性(Availability):在分布式环境中,系统必须保证在任何时刻都能够处理所有的请求并给出响应。这意味着如果某个节点挂掉了,系统仍然需要对外提供服务。可用性是系统设计的关键目标之一,但它可能会影响数据的一致性和分区容错性。

  • 分区容错性(Partition Tolerance):在分布式环境中,由于网络故障等原因,节点之间的通信可能会中断,形成多个不同的网络分区。分区容错性是指系统能够在网络分区之间进行切换并继续工作的能力。在分布式系统中网络分区是必然存在的,因此分区容错性是分布式系统必须满足的属性之一, 但它可能会影响数据的一致性和可用性。

CAP 理论提出了在分布式系统中必须满足的三个基本要素,但是在实际应用中,往往只能同时满足其中的两个要素。例如,一个分布式存储系统想要保证一致性和可用性,就必须牺牲分区容错性。反之,如果想要保证可用性和分区容错性,就必须放弃一致性。

CAP 理论在分布式系统的设计和实现中有着广泛的应用,并在业界极具影响力。但是需要注意的是,CAP 理论只是一个指导性的原则,并不能解决所有的问题。在实际应用中,应该根据具体的业务需求和情况,灵活选择适合的分布式架构和方案。

常见模型

CA:保障一致性和可用性,即放弃了P容错性,在分布式系统中理论上不存在这种模型,多存在单集群应用。

CP:保障一致性和分区容错性,即放弃可用性,针对某些对数据一致性要求极高的服务使用,比如分布式锁服务,分布式数据库等。

AP:保障可用性和分区容错性,即牺牲一致性,针对某些对数据一致性要求不那么高同时对可用性要求极高的情况下,可以采取这种模式。

常见的ZooKeeper保证的是CP,Eureka 保证的则是 AP,Nacos 不仅支持 CP 也支持 AP。

BASE理论

BASE理论是一组理论的集合体,拆分为BA、S、E三个子理论,如下

  • BA :basically available,基本可用

      基本可用是指当系统遇到不可预料的故障时,系统提供的SLA降低或者功能异常等,但仍能够保证基础能力的提供,不至于达到完全down机不可用状态。

  • S:soft state,软状态

       软状态即分布式系统下允许在集群内的不同节点之间的状态,在一定时间范围内存在不一致的情况,这里说的状态体现可以是系统状态,服务状态,接口状态等,都是通过数据状态体现。

  • E:eventually consistent, 最终一致性;

       在软状态经过一定时间过后,软状态还是应该要达到最终的状态,保障数据在各个节点的最终的一致性,这个需要考虑良好的数据同步方案,也要充分考虑网络,系统负载等其他因素       最终一致性是各服务节点之间的数据最终都是一致的,

base理论是基于CAP理论的应用实践发展而来,既是理论和实践的集合,也是业务发展需要的重要体现。

参考链接

分布式夺命12连问 - 文章详情

从Paxos到Raft,分布式一致性算法解析_语言 & 开发_云加社区_InfoQ精选文章

ChatGPT3.5问答

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值