CAP定理和BASE理论

标签(空格分隔): 操作系统


CAP定理


CAP定理: 一个分布式系统最多只能满足一致性 (Consistency), 可用性(Availability)和分区容错性(Partition tolerance)其中的两种.

一致性(Consistency)

  • all nodes see the same data at the same time.

可用性(Availability)

  • Reads and writes always succeed .

分区容错性(Partition tolerance)

  • the system continues to operate despite arbitrary message loss or failure of part of the system .

CAP权衡


  • 分区容错性: 项目属于分布式项目所以分区容错性是必须要用的, 即使每个服务的可用性是99.999% 但是在服务众多的情况下, 系统整体可用性也会有很大的下降 , 所以保持分区容错性 P 是非常重要的.

  • 一致性: 银行类这些对于信息准确性不能有一丝让步的分布式项目 必须实现一致性. 相对于分区容错性和可用性来说, 一致性的地位要大大高于其二.

  • 可用性, 对于除了银行这一类企业来说, 高可用性更加重要, 只要能够保证BASE中的最终一致性 就可以牺牲掉 强一致性来 获得更稳定的服务提供, 这样即使可能会降低一部分的用户体验, 但是不会造成用户流失这样严重的情况.

BASE理论


BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性, 但应用可以采用合适的方式做到最终一致性.

基本可用(Basically Available)

基本可用是指分布式系统在在出现故障的时候, 可以损失一部分的可用性, 但是要保证核心功能可用 .
电商大促销的时候, 为了应对访问量激增, 部分用户可能会被引导到降级页面, 服务层可能只提供降级服务 , 这就是损失部分可用性的体现 . —— 貌似前些年的时候双十一逛淘宝的时候 有人遇到这种服务降低的情况.

软状态(Soft State)

软状态是指允许系统存在中间状态, 而该中间状态不会影响系统整体的可用性. 分布式存储中一般一份数据至少会有三个副本, 允许不同节点间副本同步的延迟及时软状态的体现, MySQL Replication的异步复制就是软状态的一种体现.

最终一致性(Eventual Consistency)

最终一致性是指系统中的所有数据副本经过一段时间后, 最终能够达到一致的状态. 弱一致性和强一致性相反 , 最终弱一致性是弱一致性的一种特殊情况.

ACID和BASE的区别和联系


ACID是传统数据库常用的设计理念, 追求强一致性模型. BASE支持的是大型分布式系统, 提出通过牺牲强一致性获得高可用性.
ACID和BASE代表了两种截然相反的设计哲学, 在分布式系统设计的场景中, 系统组件对一致性的要求是不同的, 因此ACID和BASE又会结合使用.


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

  1. 分布式系统中的CAP原理和BASE理论

    CAP是一致性(Consistency).可用性(Availability).分区容忍性(Partition tolerance)的缩写.CAP原理指的是这三个要素最多只能同时实现两点,不可能三者兼顾 ...

  2. Redis-CAP定理和BASE理论(二)

    CAP理论概述 1998 年来自柏克莱加州大学的计算机科学家 埃里克.布鲁尔(Eric Brewer) 提出分布式系统的三个基本指标:Consistency(一致性).Availability(可用性 ...

  3. CAP原理和BASE理论

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

  4. CAP定理与BASE理论

    1. CAP定理 C:Consistency,一致性 A:Availability,可用性 P:Partition tolerance,分区容错性 CAP定理,指的是在一个分布式系统中,一致性.可用性 ...

  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思想和ACID模型

    问题的解读 对于上面三个例子,相信大家一定看出来了,我们的终端用户在使用不同的计算机产品时对于数据一致性的需求是不一样的: 1.有些系统,既要快速地响应用户,同时还要保证系统的数据对于任意客户端都是真 ...

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

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

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

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

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

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

随机推荐

  1. Go语言:如何解决读取不到相对路径配置文件问题

    背景 项目交叉编译为可执行文件之后,在其他目录执行文件时提示找不到配置文件 2020/03/14 20:44:23 配置文件读取失败 open config.ini: no such file or ...

  2. Java实现GBK转码到UTF-8(文件)

    所以,虚无的悲叹,寻根问底仍是由于肉身的圈定.肉身蒙蔽了灵魂的眼睛,单是看见要回那无中去,却忘了你原是从那无中来.                                            ...

  3. C语言程序设计(十) 字符串

    第十章 字符串 字符串常量是由一对双引号括起来的一个字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用字符型数组来 ...

  4. juery 弹出框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Echart饼形图和折线图的循环展示及选择展示

    需求:根据不同的入参调同一接口,循环展示一组饼形图或折线图: 主要问题:在于给定的数据格式不符合图表的配置项格式,需要拆分组装数据:首先默认展示几个图表,当选中一个类别,需要展示其中一个的时候,页面中 ...

  6. Spark实战--搭建我们的Spark分布式架构

    Spark的分布式架构 如我们所知,spark之所以强大,除了强大的数据处理功能,另一个优势就在于良好的分布式架构.举一个例子在Spark实战--寻找5亿次访问中,访问次数最多的人中,我用四个spar ...

  7. Geotools在shapefile路网数据中建立缓冲区,并获取缓冲区内的要素

    记录一下如何创建创建缓冲区并获取缓冲区内的要素,便于以后查找使用 static SimpleFeatureSource featureSource = null; static CoordinateR ...

  8. (转)C++对象的内存布局

    原文地址:http://blog.csdn.net/haoel/article/details/3081328 C++ 对象的内存布局 陈皓 http://blog.csdn.net/haoel 前言 ...

  9. Java 内存模型都不会,就敢在简历上写熟悉并发编程吗

    从 PC 内存架构到 Java 内存模型 你知道 Java 内存模型 JMM 吗?那你知道它的三大特性吗? Java 是如何解决指令重排问题的? 既然CPU有缓存一致性协议(MESI),为什么 JMM ...

  10. Spring Boot入门系列(九)如何实现异步执行任务

    前面介绍了Spring Boot 如何整合定时任务,不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.htm ...