美文网首页
CAP和BASE原理

CAP和BASE原理

作者: celusing | 来源:发表于2020-12-25 15:38 被阅读0次

https://www.cnblogs.com/mingorun/p/11025538.html
https://www.cnblogs.com/duanxz/p/5229352.html

一.CAP理论

1.介绍

CAP理论是分布式系统的理论基础。CAP理论表明:最多满足其中两个特性,不能够同时满足这三个特性。

  • C:一致性(Consistency)
  • A:可用性(Available)
  • P:分区容错性(Partition tolerance)


    深度截图_选择区域_20201225140735.png

2.理解

  1. 分区容错性(P):指的是分布式系统中某个节点或者网络出现故障的时候,整个系统仍能够对外提供满足一致性和可用性的服务。也就是说:部分故障不影响整体使用。
    P不满足:表示出现部分故障,则整个系统不可用。相当于只有一个分区,也就没有后续的一致性和可用性了。
  2. 可用性(A):一直可以征程的做读写操作。不会出现系统不可用情况。
  3. 一致性(C):这里的一致性是指强一致性。表示:在分布式系统完成某写操作后,任何读操作都应该获取最新写入的值。相当于要求分布式系统中的各个节点时刻保持数据一致性(强一直性)

3.CAP如何取舍

  1. CA:优先保持一致性和可用性,放弃分区容错。这也意味着放弃系统的扩展性,系统不再是分布式的,有违设计的初衷。
  2. CP:优先保证一致性和分区容错性。在数据一致性要求比较高的场合(zk)是比较常见的做法,一旦发生网络故障或者消息丢失,就会出现牺牲用户体验,等恢复之后用户才能逐渐访问。
  3. AP:优先保证可用性和分区容错性,放弃一致性。NoSQL中的Cassandra就是这种架构。跟CP一样,放弃一致性不是说一致性就不保证了,而是逐渐变的一致。

4.副本一致性

  1. 强一致性(strong consistency):任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。强一致性是程度最高的一致性要求,也是实践中最难以实现的一致性。
  2. 单调一致性(monotonic consistency):任何时刻任何用户一旦读到某个数据再某次更新后的值,这个用户不会再读到比这个值更旧的值。
    单调一致性是弱于强一致性却非常实用的一种一致性级别。
  3. 会话一致性(session consistency):任何用户在某一次会话内一旦读到某个数据在某次更新后的值,这个用户再这次会话过程中,就不会读到比这个值更旧的值。会话一致性:只保证单个用户单次会话内的单调一致性。
  4. 最终一致性(eventual consistency):最终一致性要求一旦更新成功,各个副本数据最终将会达到一致状态,但达到完全一致状态所需要的时间不能保障。
    对于最终一致性系统而言,一个用户只要始终读取某一个副本数据,则可以实现类似单调一致性的效果,但一旦用户更换数据副本,则无法保障任何一致性。
  5. 弱一致性(week consistency):一旦某个更新成功,用户无法在一个确定时间内读到这次更新的值,且即使在某个副本上读到更新的值,也不能保证在其他富恩尚可以读到新的值。

二.BASE理论

1.介绍

  • BA:基本可用(Basically Available)
  • S:软状态(Soft state)
  • E:最终一致性(Eventually consistent)

BASE是对CAP中一致性和可用性权衡的结果,是基于CAP定理逐渐演化而来。其核心思想:即使无法做到强一致性,但每个应用都可以结合自身业务特点,采用适当的方式来达到最终一致性。

2.解释

  1. 基本可用
    基本可用是指分布式系统在出现不可预知的故障时,运行损失部分可用性。但绝不等价于系统不可用。比如:
  • 响应时间上的损失:正常一次响应0.5s,但由于异常,查询结果的响应时间增加到2s
  • 功能上的损失:正常情况下,顺利完成一笔购物订单。但是在大促期间,部分消费者可能会被引导在一个降级页面。
  1. 弱状态:也称为软状态,和硬状态相对。是指允许系统中的数据存在中间状态,并认为该中间状态不会影响整体可用性。即允许系统在不同节点的数据副本之间进行同步存在延迟。
  2. 最终一致性:最终一致性强带哦的是系统中所有的数据副本,在经过一段时间的 同步后,最终能达到一个一致的状态。因此,最终一致性的本质是需要保证最终数据达到一致,而不需要实时保证系统数据的强一致性。

总的来说,BASE理论面向的是大型高可用可扩展的分布式系统,和传统事物的ACID特性是相反的,它完全不同于ACID的强一致性模型,而是提出通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。

相关文章

  • CAP和BASE原理

    https://www.cnblogs.com/mingorun/p/11025538.html[https://...

  • CAP原理和BASE思想

    CAP原理分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的。Avai...

  • CAP原理和BASE思想

    分布式领域CAP理论 Consistency(一致性):数据一致更新,所有数据变动都是同步的Availabilit...

  • CAP&BASE

    如何正确理解CAP理论?CAP原理和BASE思想6.0 柔性事务 :TCC两阶段补偿型聊聊分布式事务,再说说解决方...

  • 架构师进阶实战随堂笔记三

    场景三分布式系统中的CAP原则 CAP&Base 理论介绍与案例分享 CAP理论介绍 CAP原理 一致性(Cons...

  • CAP和BASE

    https://www.jianshu.com/p/26110a07e2d9

  • 看《大明王朝1566》聊分布式中的CAP和BASE理论

    概述 CAP 和 BASE 理论 基本上接触过分布式系统的朋友都知道 CAP 和 BASE 理论,这两个理论对工程...

  • 一致性科普

    CAP:网络编程(七):CAP原理推导和应用

  • CAP和BASE理论

    本文将从分布式一致性问题,引出CAP和BASE理论。 问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被...

  • CAP和BASE理论

    CAP理论:一个分布式系统不可能同时满足一致性(Consistency),可用性(Availability)和分区...

网友评论

      本文标题:CAP和BASE原理

      本文链接:https://www.haomeiwen.com/subject/josmnktx.html