CAP 理论、BASE 理论、FLP 理论

CAP 理论、BASE 理论、FLP 理论

1.CAP 理论

C(Consistency) 一致性:

在写操作之后的所有读操作,必须要返回写入的值。

A(Availability) 可用性:

只要收到用户的请求,服务端就必须给出回应。

P(Partition tolerance) 分区容错性:

一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散步在了这些不连通的区域中。这就叫分区;当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这个时候分区就是无法容错的。


notes:数据存在的节点越多,分区容错性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。

2.BASE 理论

BASE(Basically Availabl, Softstate, Eventually consistent):

CAP 理论的延申,核心思想是即使无法达到强一致性,但也可以采用适合的方式牺牲一定的一致性,从而达到最终一致性,以及换取一定的可用性。


Basically Available: 基本可用。是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。

Softstate: 软状态。是指允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

Eventual Consistency:
最终一致性。是指分布式系统处于软状态的时间必须是有限的,在期限过后,应当保证所有副本保持数据一致性,从而达到数据的最终一致性。这个时间期限取决于网络延时、系统负载、数据复制方案设计等因素。

最终一致性在实际工程实践中,分为5种:

1.因果一致性(Causal consistency):

如果节点A在更新完某个数据之后通知了节点 B,那么节点B之后对该数据的访问和修改都是基于A更新后的值。与此同时,和节点A无因果关系的节点C的数据访问则没有这样的限制。

2.读己之所写(Read Your writes)

节点A更新一个数据后,它自己总是能访问到自身更新过的最新值,而不会看到旧值。属于因果一致性的一种特殊情况。

3.会话一致性(Session consistency)

会话一致性将对系统数据的访问过程框定在了一个会话当中:系统能保证在同一个 有效 的会话中实现“读己之所写”的一致性,也就是说,执行更新操作之后,客户端能够在同一个会话种 始终读取到该数据项的最新值。(PS:其实这很像关系型数据库中的可重复读事务隔离级别。)

4.单调读一致性(Monotonic read consistency)

如果一个节点从系统中读取出一个数据项的某个值之后,那么系统对于该节点后续的任何数据访问都不应返回更旧的值。

5.单调写一致性(Monotonic write consistency)

一个系统要能够保证来自同一个节点的写操作被顺序的执行(与禁止指令重排序有点像)。

在实际的项目中,这五种方案往往会结合使用,用以构建分布式系统的最终一致性。


ACID 和 BASE的区别和联系:

ACID 是传统数据库常用的设计理念,追求强一致性模型;

BASE 是大型分布式系统,用最终一致性代替强一致性,来获取一定的可用性的新模型。

3.FLP理论

FLP理论(FLP Imposibility):
在异步通信的场景中,因为各个节点之间的延时,是否宕机等不确定因素的存在,所以不存在任何算法能达到强一致性。简而言之在实际的分布式系统中,一致性算法的可靠性是无法保证的,即不存在一个能在异步网络上能够容忍各种故障并保持一致的分布式系统。

CAP 理论、BASE 理论、FLP 理论相关推荐

  1. 分布式事务前看懂CAP、BASE

    CAP.BASE跟后面要看的分布式事务有直接的关系,但是这两个分布式的理论对我们研究分布式系统里面的一些技术和方案都是作为基础的知识需要掌握的 这个CAP这个东西啊,也是个在研究分布式相关的问题中,比 ...

  2. CAP与Base理论

    分布一致性的提出 在分布式系统中要解决的一个重要问题就是数据的复制.在我们的日常开发经验中,相信很多开发人员都遇到过这样的问题:假设客户端C1将系统中的一个值K由V1更新为V2,但客户端C2无法立即读 ...

  3. 分布式系统概念 | 分布式理论:CAP、BASE

    文章目录 CAP定理 BASE理论 CAP定理 一个分布式系统不可能同时满足一致性(Consistency).可用性(Availability).分区容错性(Partition Tolerance)这 ...

  4. 10分钟了解分布式CAP、BASE理论

    CAP理论 2000年7月,Eric Brewer教授提出CAP猜想:2年后,Seth Gilbert和Nancy Lynch从理论上证明了CAP:之后,CAP理论正式成为分布式计算领域的公认定理.C ...

  5. 分布式理论:CAP、BASE | 分布式存储与一致性哈希

    文章目录 分布式理论 CAP定理 BASE理论 分布式存储与一致性哈希 简单哈希 一致性哈希 虚拟节点 分布式理论 CAP定理 一致性(Consistency): 在分布式系统中的所有数据副本,在同一 ...

  6. 从分布式环境的特点、问题到CAP、BASE理论详解

    分布式的特点: 定义: 分布式系统是一个硬件或者软件组件分布在不同的网络计算机上,彼此之间仅仅通过网络进行通信和协调的系统. 特点: 同一个分布式系统中的计算机在空间部署上可以是任意分布的,这些计算机 ...

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

    概述 CAP 和 BASE 理论 基本上接触过分布式系统的朋友都知道 CAP 和 BASE 理论,这两个理论对工程实践中的分布式架构设计具有重要的影响.CAP 理论是加州大学伯克利分校的 Eric B ...

  8. 分布式系统之CAP和BASE理论

    CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上,首次提出了CAP猜想. 2002年,麻省理工学院的Seth Gilbert和Nancy Lynch从 ...

  9. base cap 分布式_1、分布式基础之CAP和BASE理论

    ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸. 一.从集中式到分布式 1.集中式 集中式是指有一台或者多台计算机组成的中心节点,数据 ...

最新文章

  1. 图解yolo目标检测如何进行运动估计
  2. Leet Code OJ 263. Ugly Number [Difficulty: Easy]
  3. 如何在内存序列化中使用Java深克隆对象
  4. 某集网将我的信息给了谁?还是不良卖家不想卖东西
  5. 详解varint编码原理
  6. 计算机应用的问答题,计算机应用技术问答题(一)
  7. Go 应用优化“指北”
  8. 萨纳斯耿文强:光伏管控智能化亟待统一标准
  9. Linux下重启tomcat
  10. unity 截图/图片保存到手机相册
  11. dede后台系统基本参数空白怎么办?
  12. MySQL 安装失败 Failed to find valid data directory
  13. 矩阵树定理--luoguP4208 [JSOI2008]最小生成树计数
  14. 打印当前python文件出错行
  15. SQLStudio下载
  16. idea打包提示程序包不存在如何解决?
  17. 微信小程序码的生成方式
  18. c++ 进制转换 十六进制转八进制
  19. PLC和触摸屏通过智能网关与另一台主站PLC双向通讯
  20. HTML CSS杂记

热门文章

  1. 华为linux版笔记本安装win7,华为MateBook X Pro笔记本怎样安装win7系统
  2. 信息系统状态过程图_操作系统中的增强型过程状态图
  3. 面试突击 002 | Redis 是如何处理已过期元素的?
  4. 面试官:为什么 Spring 中的 bean 默认为单例?
  5. openssl ssl_write 写错误
  6. ubuntu挂起唤醒后十几秒钟就自动熄屏一次
  7. python学习笔记全过程_Python学习过程笔记整理(一)
  8. 工业计算机远程控制,基于SOCKET技术的计算机远程控制实现
  9. java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程
  10. 反序列化的时候出现eof exception_FastJson序列化时候出现了$ref?还不赶紧学习下...