CAP Theorem

  • CAP 指的就是 "consistency 一致性","availability 可用性" "partition-tolerance 分区容错性".

  • consistency: 一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上,从任意结点读取到的数据都是最新的状态。
    特点:1.由于数据同步过程,写操作的响应存在一定的延迟
    2.为了保证数据一致性会对资源进行暂时锁定,待数据同步完成释放锁资源
    3.如果请求数据同步失败的结点则会返回错误信息,一定不会返回旧数据。

  • availability: 可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错误。
    特点:1.所有请求都有响应,且不会出现响应超时或响应错误。

  • partition-tolerance:网络中断等问题发生后系统能正常工作,提供服务,保证一致性和可用性,不同分区之间数据同步时不影响分区数据的读写操作。一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。所以在CAP原则里面,分区容错性是必须要有的
    特点:1.分区容忍性分是布式系统具备的基本能力。

  • 一致性、可用性和分区容错性不可能同时全部满足。最多只能满足其中两个。一致性和可用性是相互矛盾的,一般只能满足其中之一。

CAP组合方式

  • AP:牺牲了数据一致性,追求可用性和分区容错性。可能导致全局数据不一致。客户端发出请求之后,为了保证可用性,得到的响应可能是旧的数据,因为数据的同步需要时间,但在某些情况下旧数据也是可以接受的,通常实现AP都会保证最终一致性。比如订单退款操作,用户申请退款以后,得到信息”今日退款成功,明日账户到账“,只要用户接受在一定时间内到账即可。AP的应用也比较广泛,主要好处是可以保证数据传递的时效性,提高用户体验。AP是最常见的模型。

  • CP : 放弃可用性,追求一致性和分区容错性。属于强一致性。等待数据同步完才能正常访问服务,保证用户得到的数据一定是最新的,否则不返回数据。一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验。举个例子,银行跨行转账时,一次转账需要等待双方银行都完成整个事务的时候才算完成,这种应用场景常见于金融系统。应用有Redis、zookeeper等。

  • CA:放弃了分区容错性,保证了一致性和可用性。这就不属于一个严格的分布式系统了,任何一个分区服务器出故障,都可能导致整个系统的崩溃。关系型数据库满足CA,比如Oracle、MySQL。

  • 以上所写的”牺牲、放弃“等并不是表示完全怕抛弃某一个特性,而是表示降低对该特性的要求,提高另外对两个特性的要求

CAP理论在数据库领域的应用

附录

提供一篇HP的关于分布式的论文以供参考

【分布式】CAP理论及其应用的更多相关文章

  1. 三分钟分布式CAP理论

    分布式系统架构理论,定义了三种指标,理论说我们最多只能满足两个. ## 分布式系统 首先我们这个理论所说的分布式系统,是指系统内会共享数据,互相有连接有交互,才能完成系统功能的的分布式系统.而这个理论 ...

  2. 分布式CAP理论

    分布式CAP理论 来自wiki: 在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下 ...

  3. 分布式CAP理论介绍:一致性(Consistency),可用性(Availability),容忍网络分区(Partition tolerance)

    在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consisten ...

  4. 分布式零基础之--分布式CAP理论

    研究到分布式系统CAP理论,记录下来下回详细分析它: CAP是指三个单词的简称 C: 一致性(Consistence) 所有节点访问的都是同一份最新的数据副本. A: 可用性(Availability ...

  5. 分布式系统及CAP理论

    一.集中式系统 在学习分布式之前,先了解一下与之相对应的集中式系统是什么样的. 集中式系统用一句话概括就是:一个主机带多个终端.终端没有数据处理能力,仅负责数据的录入和输出.而运算.存储等全部在主机上 ...

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

    问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然 ...

  7. 【转】分布式理论-CAP理论

    一 CAP理论简述 CAP (Consistency, Availability, Partition  Tolerance,) 理论是NoSQL数据库管理系统构建的基础.     强一致性:等同于所 ...

  8. 分布式领域CAP理论

    分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可 ...

  9. 分布式 基本理论 CAP

    谈及分布式,必然谈到 CAP, CAP 已经是被说烂了的一个 话题, 绕不开, 逃不掉.  而且, 理解起来 会有些吃力. 分布式的CAP理论告诉我们 “任何一个分布式系统都无法同时满足 一致性(Co ...

  10. CAP理论与分布式事务解决方案

    微服务系统所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即同时满足"一致性""可用性"和"分区容错"是一件不可能的事.CAP理 ...

随机推荐

  1. 日常Bug排查-消息不消费

    日常Bug排查-消息不消费 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 某天下午,在笔者研究某个问题正high的时候.开 ...

  2. 再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件

    相信大家应该都接触过Linux操作系统(Ubuntu.Centos等),那么在使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器. 常用的ssh工具主要有:Xshell.MobaXt ...

  3. DDD中聚合、聚合根的含义以及作用

    聚合与聚合根的含义 聚合: 聚合往往是一些实体为了某项业务而聚类在一起形成的集合 , 举个例子, 社会是由一个个的个体组成的,象征着我们每一个人.随着社会的发展,慢慢出现了社团.机构.部门等组织,我们 ...

  4. 使用CUDA Warp-Level级原语

    使用CUDA Warp-Level级原语 NVIDIA GPU以SIMT(单指令,多线程)的方式执行称为warps 的线程组.许多CUDA程序通过利用warp执行来实现高性能.本文将展示如何使用cud ...

  5. 2D池化IPoolingLayer

    2D池化IPoolingLayer IPooling层在通道内实现池化.支持的池类型为最大, 平均 和 最大平均混合. 层描述:二维池化 使用张量上的2D滤波器计算池化a tensor A, of d ...

  6. C语言代码区错误以及编译过程

    C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...

  7. 『言善信』Fiddler工具 — 7、统计选项页详解(Statistics)

    目录 1.Statistics选项页介绍 2.Statistics界面内容说明 3.Statistics选项页底部图表说明 1.Statistics选项页介绍 Statistics 页签显示当前用户选 ...

  8. 计算机网络-ip分类

    本网络--网络号全是0(0000 0000)的IP地址是保留地址,意思是"本网络". 环回地址--网络号是127(0111 1111)的IP地址也是保留地址,作为本地环回软件测试. ...

  9. 认真总结Vue3中ref与reactive区别和isRef与isReactive 类型判断

    1.什么是ref? 1.ref和reactive-样 也是用来实现响应式数据的方法 由于reactive必须传递一个对象, 所以导致在企业开发中如果我们只想让某个变量实现响应式的时候会非常麻烦 所以V ...

  10. 并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

    欢迎来到<并发王者课>,本文是该系列文章中的第14篇. 在黄金系列中,我们介绍了并发中一些问题,比如死锁.活锁.线程饥饿等问题.在并发编程中,这些问题无疑都是需要解决的.所以,在铂金系列文 ...