1. CAP定理

  • C:Consistency,一致性
  • A:Availability,可用性
  • P:Partition tolerance,分区容错性

CAP定理,指的是在一个分布式系统中,一致性、可用性、分区容错性,三者不可得兼。

2. CAP详解

2.1 一致性(C)

指所有节点访问同一份最新的数据副本。通俗理解就是,在分布式系统中,所有的数据副本,在同一时刻值相同。

2.2 可用性(A)

每次请求都能获取到相应,可以对外提供服务

2.3 分区容错性(P)

由于分布式系统的一个节点发生网络延迟或故障,在规定时限内系统不能做到数据一致性,就发生了分区(系统中有多个数据不一致的节点)。此时,必须在一致性和可用性之间做出选择。

例如:分布式系统中有两个节点,一个节点发生了网络延迟或故障。如果为了保证节点数据一致性,那么就必须放弃可用性,就是两个节点都不再提供服务;如果为了保证可用性,就是说仍要提供服务,那么就必须放弃一致性,没有发生网络延迟或故障的节点仍提供服务。

3. CP还是AP?

在分布式系统中,发生网络延迟或故障是不可避免的,也就是分区容错性是避免不掉的,而发生了分区后,只能在一致性和分区容错性自建选择,那么我们只有两种选择:

  • 数据一致性和分区容错性(CP)
  • 可用性和分区容错性(AP)

无论选择CP,还是选择AP,都是根据业务需求来选择,没有所谓的谁比谁好。

3.1 选择CP

也就是说,我们更看重数据的一致性,适用于对数据一致性有严格要求的业务场景,例如金融,12306售票。

3.2 选择AP

此时更看重可用性,放弃一致性(还是要追求最终一致性的,不一致的数据没有意义),也是各大互联网公司一直宣称服务不可用时间有多少秒,强调的就是可用性。

4. BASE理论

BASE理论是:

  • 基本可用(BA, Basically Available)
  • 软状态(Soft State)
  • 最终一致性(Eventual Consistency)

其思想是,在分布式系统,选择可用性和分区容错性时,无法做到一致性,可以采用适当的方案达到最终一致性,在保证可用性的同时,数据最终也能达到一致。

例如,在电商的促销活动中,是为了追求高可用(相对于CAP中的可用,高可用偏重于可以处理高并发,也是就高QPS),放弃一致性,选择最终一致性(下单成功后,不会立马收到短信,延迟一段时间还是会收到短信。记得某平台,在购物节期间,都不再提供发短信服务了)。为什么要追求可用,甚至是高可用呢?在促销活动中,1件商品,可能有1百万个人同时在抢,那么就是说,当一个人进入抢购时(要判断这个人是不是满足参加的条件等),剩余的都在等待,甚至于拒绝你抢购,对用来说,这是不能容忍的,最真实的案例就是12306上抢票。

4.1 基本可用

指在分布式系统中,发生故障时,允许损失一部分功能,但是其它功能还是可用的。

4.2 软状态

指分布式系统中,允许存在数据的中间状态,而中间状态又不会影响系统的可用性。

4.3 最终一致性

分布式系统中的数据在一段时间后,最终能达到一致性。

5. CAP定理和BASE理论

CAP定理揭示了在分布式系统中一致性、可用性和分区容错性的不能同时满足,而可以设计满足BASE理论的分布式系统。

参考文献

CAP定理

从分布式一致性谈到CAP理论、BASE理论

CAP和BASE理论

CAP定理与BASE理论的更多相关文章

  1. 【分布式】1、CAP原则(CAP定理)、BASE理论

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  2. CAP原则(CAP定理)、BASE理论

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  3. 关于分布式存储系统中-CAP原则(CAP定理)与BASE理论比较

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  4. 分布式系统CAP定理与BASE理论

    CAP定理: 一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本要求,最多只能 ...

  5. CAP原则、BASE理论

    CAP原则.BASE理论 2017-12-15 目录 1 CAP原则  1.1 CAP原则是什么  1.2 CAP为何三者不可得兼  1.3 一致性与可用性的决择2 BASE理论  2.1 BASE理 ...

  6. CAP定理和BASE理论

    CAP定理和BASE理论 标签(空格分隔): 操作系统 CAP定理 CAP定理: 一个分布式系统最多只能满足一致性 (Consistency), 可用性(Availability)和分区容错性(Par ...

  7. CAP原则和BASE理论

    CAP原则 CAP原则又称CAP定理,是一个经典的分布式系统理论.CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错 ...

  8. CAP原理和BASE理论

    CAP原理 概述 CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题. CAP理论就是说在分布式存储系统中,最多只能实现上面的两点.而由于当前的网络硬件肯定会出现延迟丢包等问题 ...

  9. 简单了解下CAP定理与BASE定理

    分布式环境下的各种问题 通信异常 网络不可用风险高,消息丢失.消息延迟非常普遍 网络分区(脑裂)   网络发生异常情况,延迟增加,导致所有组成分布式系统的节点中,只有部分节点之间能够正常通信,而另一些 ...

随机推荐

  1. OpenCV (C++) 颜色跟随

    #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespace std; ...

  2. nfs原理及安装配置

    一.简介 二.工作原理 三.安装配置 一.简介 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源.将NFS主机分享的目录,挂载到本地客户端当中, ...

  3. 关于for,while,dowhile效率测试

    引言 大家都知道每种循环对应的效率是不同的,书中都说在循环中使用减法的效率是比加法的效率高的,具体情况是怎么样,我们将详细列出各循环的执行效率问题.本文通过查看汇编代码比较各循环的效率以及i++,++ ...

  4. TerraGate软件安装后,服务无法启动的解决方法

    前些天有朋友问,TerraGate安装后,服务无法启动,而且启动按钮也是不可用的状态,不知道是为什么,如下图: 打开TerraGate的安装目录,发现里面缺少一些文件,如下图: *解决办法: 重新安装 ...

  5. 三、java三大特性--多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  6. Luogu2045 方格取数加强版(K取方格数) 费用流

    题目传送门 题意:给出一个$N \times N$的方格,每个格子中有一个数字.你可以取$K$次数,每次取数从左上角的方格开始,每一次只能向右或向下走一格,走到右下角结束,沿路的方格中的数字将会被取出 ...

  7. 【iOS】build diff: /../Podfile.lock: No such file or directory

    Github 上下载的开源项目,在 Xcode 打开运行后报了错,如图所示: 解决方法: 在工程设置中的 Build Phases 下删除 Check Pods Manifest.lock 及 Cop ...

  8. [UWP 自定义控件]了解模板化控件(5.1):TemplatePart vs. VisualState

    1. TemplatePart vs. VisualState 在前面两篇文章中分别使用了TemplatePart及VisualState的方式实现了相同的功能,其中明显VisualState的方式更 ...

  9. Munge服务部署和测试

    1. 概述2. 下载3. 安装3.1 源码简要说明3.2 编译安装3.3 配置3.4 创建munge.key3.5 启动方式 1. 概述 munge是认证服务,用于生成和验证证书.应用于大规模的HPC ...

  10. Aop笔记

    参考: https://blog.csdn.net/bombSKLK/article/details/79143145 示例 拦截的 注解的方法 @Around("@annotation(c ...