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. IOS手动添加的View 在代码中使用(自动布局)autoLayout

    - (void)viewDidLoad { [super viewDidLoad]; UIButton *btnTest = [UIButton buttonWithType:UIButtonType ...

  2. 学习ConcurrentHashMap并发写机制

    1. 前言 上篇文章讲了 Unsafe 类中 CAS 的实现,其实是在为这篇文章打基础.不太熟悉的小伙伴请移步Unsafe 中 CAS 的实现.本篇文章主要基于 OpenJDK8 来做源码解析. 2. ...

  3. Excel 电子表格中,快速修改表格中的数值

    打开设置单元格设置选项后,当前界面,分类下面的选项中,选择“自定义”,并在右侧展示的“类型(T)”下方的对话框中,输入以下代码: [=1]√;[=2]×; 并按确认, [=1] 意思为: 将单元格中, ...

  4. 单元测试 - Tests和UITests (一) 业务测试

    单元测试 假如我们今天去面试了,面试官问了一句“什么是单元测试?有没有使用?大概是针对那些情况进行单测的?单测意义从你实际使用中总结一下.” 这要在我没进行现在的单测之前这个问题我回答的可能就是“不好 ...

  5. JVM笔记-垃圾收集算法与垃圾收集器

    1. 一些概念 1.1 垃圾&垃圾收集 垃圾:在 JVM 语境下,"垃圾"指的是死亡的对象所占据的堆空间. 垃圾收集:所谓"垃圾收集",就是将已分配出去 ...

  6. iframe 父框架调用子框架的函数

    1.父框架定义: <iframe name="mainframe" id="mainframe" width="100%" scrol ...

  7. WPF学习概述

    引言 在桌面开发领域,虽然在某些领域,基于electron的跨平台方案能够为我们带来某些便利,但是由于WPF技术能够更好的运用Direct3D带来的性能提升.以及海量Windows操作系统和硬件资源的 ...

  8. 一口气说出 6种,@Transactional注解的失效场景

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问 ...

  9. Python 之装饰器

    Python 的装饰器可谓是提高开发效率的一大利器.然而初学装饰器的时候感觉很难理解,因为除了 Python 之外没听说哪个语言有这种东西. 而且网上看的很多解释看似容易理解,但只能很快理解了装饰器能 ...

  10. DVWA Brute Force 解析

    LOW 源代码如下: <?php if( isset( $_GET['Login'] ) ) { $user = $_GET['username']; $pass = $_GET['passwo ...