CAP 和 BASE

CAP 理论(Consistency、Availability、Partition tolerance)

  • 一致性: 指的是执行更新操作后,数据从一个一致性状态转移到另一个一致性状态。如果所有用户总能读到最新的值,该系统就被认为具有强一致性。

  • 可用性: 指的是系统提供的服务一直处于可用的状态,每一个操作请求总能在有限的时间内返回结果。

  • 分区容忍性: 指的是分布式系统在遇到网络分区故障时,依然能对外提供一致性和可用性的服务。网络分区指的是分布式系统中节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信,从而导致整个系统的网络环境被切分成了若干个孤立的区域。

  • 一个分布式系统不可能同时满足这三个需求,而分区容忍性对于分布式系统来说,是最基本的要求,因为分布式系统中的组件必然被部署到不同的节点上,所以往往是根据业务的特点在一致性和可用性之间寻求平衡。

BASE 理论(Basically Available、Soft state、Eventually consistent)

  • BASE 理论是对 CAP 中一致性和可用性权衡的结果,它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性
  • 基本可用: 指的是分布式系统在出现故障时,允许损失部分可用性来保证核心可用。比如正常情况下一个在线搜索引擎需要在0.5秒内将搜索结果返回给用户,但出现故障时,允许将响应时间增加到 1 到 2 秒。再比如电商在做促销时,为了保证购物系统的稳定性,部分消费者可能会被引导到一个降级的页面。
  • 软状态: 指的是允许系统中的数据存在中间状态,也就是允许不同节点的数据副本进行同步的过程存在延时。
  • 最终一致性: 指的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一致的状态,而不需要实时保证数据的一致性。
  • ACID 要求强一致性,通常在传统的数据库系统上使用。而 BASE 要求最终一致性,通过牺牲强一致性来达到可用性,通常在大型分布式系统中使用。而在实际的分布式场景中,不同业务对一致性的要求是不同的,所以往往将 ACID 和 BASE 结合起来使用。
发布了307 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/dl674756321/article/details/103745095
今日推荐