1. 背景

网络分区:俗称“脑裂”。当网络发生异常情况,导致分布式系统中部分节点之间的网络延时不断变大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能。

当网络分区出现时,分布式系统会出现局部小集群。

2. CAP

CAP理论指的是在一个分布式系统中,不可能同时满足Consistency(一致性)、Availablity(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中的两项。

2.1 一致性(C)

数据在多个副本之间是否能够保持一致的特性。当执行数据更新操作后,仍然可保证数据处于一致的状态。

2.2 可用性(A)

系统提供的服务必须一直处于可用的状态。对于用户的每一个操作情况总是能够在有限的时间内返回结果。这个有限时间是系统设计之初就指定好的系统运行指标。返回的结果指的是系统返回用户的一个正常响应结果,而不是系统错误信息。

2.3 分区容错性(P)

分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。

组成分布式系统的每个节点的加入与退出都可以看成是一个特殊的网络分区。

注:一个分布式系统无法同时满足这三个条件,只能满足两个,意味着我们要抛弃其中一项。

(1)CA,放弃P:将所有数据都放在一个分布式节点上,这同时放弃了系统的可扩展性。

(2)CP,放弃A:一旦系统遇到故障,受影响的服务器需要等待一段时间,在恢复期间无法对外提供正常的服务。

(3)AP,放弃C:这里的放弃一致性是指放弃数据强一致性,而保留数据的最终一致性。系统无法实时保持数据的一致性,但承诺在一个限定的时间内,数据最终能够达到一致的状态。

对于分布式系统而言,分区容错性是一个最基本的要求,因为分布式系统中的组件必然需要部署到不同的节点 ,必然会出现子网络,在分布式系统中,网络问题是必定会出现的异常。

因此分布式系统只能在一致性(C)和可用性(A)之间进行权衡。

3. BASE

BASE理论是指,Basically Available(基本可用),Soft-state(软状态),Eventual Consistency(最终一致性)。是基于CAP定理演化而来,是对CAP中一致性和可用性权衡的结果。

核心思想:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。

3.1 基本可用

指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。

3.2 软状态

软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。

3.3 最终一致性

系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。

BASE理论面向的是大型高可用可扩展的分布式系统,通过牺牲强一致性来获得可用性。

ACID是传统数据库常用的概念设计,追求强一致性模型。ACID,指数据库事务正确执行的四个基本要素的:原子性(Atomicty)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

分布式系统的CAP和BASE理论的更多相关文章

  1. 分布式CAP与BASE理论

    参考: CAP和BASE理论 https://juejin.im/post/5d720e86f265da03cc08de74 https://github.com/changmingxie/tcc-t ...

  2. CAP和BASE理论

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt370 1. CAP理论 2000年7月,加州大学伯克利分校的Eric Bre ...

  3. CAP与Base理论

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

  4. ZooKeeper(六)-- CAP和BASE理论、ZAB协议

    一.CAP理论和BASE理论 1.CAP理论 CAP理论,指的是在一个分布式系统中,不可能同时满足Consistency(一致性). Availability(可用性).Partition toler ...

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

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

  6. [转]10分钟了解分布式CAP、BASE理论

    原文: https://www.cnblogs.com/chengtian/p/11278072.html ---------------------------------------------- ...

  7. 分布式---CAP和BASE理论

    3.CAP   分布式系统不可能同时满足一致性(C:Consistence),可用性(A:Avaliability)和分区容忍性(P:Partition Tolerance),最多只能同时满足其中的两 ...

  8. 差点跪了!阿里3面真题:CAP和BASE理论了解么?可以结合实际案例说下不?

    本文节选自我开源的 JavaGuide :https://github.com/Snailclimb/JavaGuide (Github标星92k+!一份涵盖大部分 Java 程序员所需要掌握的核心知 ...

  9. [转]CAP和BASE理论

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

随机推荐

  1. Linux(CentOS)下squid代理服务器配置-五岳之巅

    squid是linux下的一款代理服务器软件,他可以共享网络 ,加快访问速度,节约通信带宽,同时防止内部主机受到攻击,限制用户访问,完善网络管理 rpm -qa|grep squidyum insta ...

  2. 【web.xml】报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    今天搭建新的项目,虽然在web.xml中配置了ContextLoaderListener以及IntrospectorCleanupListener 如下: web.xml中部分代码: <!-- ...

  3. 利用json2html将json数据填充到html模板

    1.下载json2html>> 2.制作好模板.准备好json数据.启动 <!DOCTYPE html> <html> <head> <meta ...

  4. Ubuntu下轻松安装virtualbox

    转自:http://blog.csdn.net/flm2003/article/details/8168628 以下假设你的Ubuntu系统版本为11.10的64位版本,进行如下操作: 1.到http ...

  5. Ubuntu下Wine使用教程

    转自:http://blog.csdn.net/wangchangshuai0010/article/details/12057251 用了段时间的Ubuntu,感觉很好!可是工作的时候还是要用到 w ...

  6. 在代码中加载storyBoard中的ViewController

    首先, 要在storyBoard中画出想要的VC, 然后建一个VC类和他关联.如图 : 调用时找如下写: DetailViewController *detailVC = [[UIStoryboard ...

  7. Hibernate 注解@Column(nullable = false) 和 @Column(unique=true)

    unique=true是指这个字段的值在这张表里不能重复,所有记录值都要唯一,就像主键那样; nullable=false是这个字段在保存时必需有值,不能还是null值就调用save去保存入库;

  8. 什么是webview

    WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:第一种方法的步骤:1.在要Activity中实例化W ...

  9. 利用Python编写网络爬虫下载文章

    #coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期 ...

  10. Android源代码编译apk导入第三方包报错

    报错内容例如以下: make: *** 没有规则能够创建"out/target/common/obj/APPS/ AndroidWFS_intermediates/classes-full- ...