CAP和BASE原理

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原理)