CAP定理(CAP theorem)

1、在我们写代码的过程中,经常会遇见一些定理,那今天就简单介绍一下什么是CAP定理呢?(CAP定理的说明性证明,有兴趣的可以去看一下)

CAP 定理指出,分布式系统不能同时具有一致性、可用性和分区容忍性。

2、那么再说CAP定理之前我们需要简单了解一下分布式系统与ACP之间的联系

分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。

分布式系统简介:
(1) 分布式系统(distributed system)由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。
(2)分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。
(3) 因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
(4) 分布式系统可以应用在不同的平台上如:Pc、工作站、局域网和广域网上等。

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

  • C:一致性(Consistency) (所有节点在同一时间具有相同的数据,数据要一直处于一致的状态)

  • A:可用性(Availability) (保证每个请求不管成功或者失败都有响应)

  • P:分区容错(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作,分区:区间的通信可能会失败,分区容错:系统允许出现传输数据失败的情况)

    你或许会有疑惑,一致性和可用性,为什么不可能同时成立?答案很简单,因为可能通信失败(即出现分区容错)
    

4、分布式系统的三个指标

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类

  • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
  • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

5、粗略的理解,不正确的可以私信我,或者下方评论~

CAP定理(CAP theorem)相关推荐

  1. 架构师之路 — 分布式系统 — CAP 定理

    目录 文章目录 目录 CAP 定理 C(Consistency,一致性) A(Availability,可用性) P(Partition tolerance,分区容错性) CAP 的组合 CP(con ...

  2. 深入理解 CAP 定理

    深入理解 CAP 定理 什么是 CAP 定理 结点.系统.集群 一致性.可用性.分区容错性 一致性.可用性.分区容错性之间的区别 为什么不能同时满足 CAP 总结 什么是 CAP 定理   CAP 定 ...

  3. 【翻译】Brewer's CAP Theorem CAP定理

    Brewer's CAP Theorem 原文地址:http://www.julianbrowne.com/article/brewers-cap-theorem Brewer's (CAP) The ...

  4. 谷歌新发布的分布式数据库服务,是要打破CAP定理了吗?

    谷歌新发布的分布式数据库服务,是要打破CAP定理了吗? 本来来自:Original 2017-02-19 作者|登州知府 2月14日,Google 宣布推出 Cloud Spanner 云端数据库服务 ...

  5. 分布式系统不得不说的CAP定理

    21天学会C语言?3天学会弹钢琴? 放弃一切错误方法,从今天开始"刻意练习", 因为这才是最强大的,也是唯一正确的学习方法. --<刻意练习>Anders Ericss ...

  6. 佳文分享:CAP定理

    1976年6月4号,周5,在远离音乐会大厅的一个楼上的房间内,在位于Manchester的Lesser Free Trade Hall ,Sex Pistols 乐队(注:Sex Pistols的经理 ...

  7. java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(三:注册中心、补充CAP定理、BASE 理论)~整起

    架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(一:总览篇) 网关开了个头 你请求来了,我网关把你拦截住,验明正身,加以控制,协助你调用服务,完成请求的调用.但是这个过程中,为了解耦和或者 ...

  8. 分布式之什么是CAP定理

    [版权申明] 非商业目的注明出处可自由转载 出自:shusheng007 文章目录 概述 历史 定义 如何理解 总结 概述 前段时间看到微服务注册中心的如何选择问题,在比较 Netflix eurek ...

  9. 分布式学习(二)——CAP定理理解篇

    前言:CAP定理是学习分布式所必备的知识点之一,所以先深入的理解一下这个知识点.初看CAP定理时,有些不以为意,在后续的学习中发现这是个特别值得仔细揣摩的点. 一.CAP定理 我们了解到分布式是将一个 ...

最新文章

  1. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
  2. matlab白化滤波,基于预白化方法的降噪预处理技术与流程
  3. 解决莫名其妙出现connection closed的错误
  4. XamarinAndroid组件教程RecylerView动画组件使用动画(3)
  5. 网络数据包收发流程(三):e1000网卡和DMA
  6. 谷歌生物医学专用翻译_文献翻译|知云翻译,写论文必备~
  7. LeetCode_559.N叉树的最大深度
  8. 五分钟精通Oracle Hints
  9. [Redis6]常用数据类型_Zset有序集合
  10. 自定义C++异常处理
  11. html5 css3考试f卷,HTML5 CSS3 JavaScriptWeb前端开发自测试卷3.docx
  12. 轻松学会多线程(四)——synchronized同步keyword知多少
  13. 2012021402
  14. scrapy常用设置参考手册
  15. fenby C语言 P17
  16. 基于h5的跳一跳游戏的开发与实现_武汉专业开发自助零售系统报价,专业软件小程序定制平台_便企网...
  17. HTTP的基础知识——TCP/IP协议族
  18. Algorithms 学习笔记——1.1
  19. Excel单元格锁定及解锁
  20. java http 401_401 API请求状态错误

热门文章

  1. 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...
  2. 北大OJ(POJ 2503)在线翻译
  3. ajax异步注册代码,基于AJAX用户注册信息异步校验
  4. linux中exit和fatal区别,关于Linux系统命令中exit与exit的区别
  5. java实现redis客户端_windows下java swt实现操作redis的客户端工具
  6. MySQL DBA必备:MySQL 5.7升级8.0过程(全)
  7. ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...
  8. 深入解析:从源码窥探MySQL优化器
  9. MySQL 分页优化中的 “ INNER JOIN方式优化分页算法 ” 到底在什么情况下会生效?...
  10. 开工大吉:Oracle 18c已经发布及新特性介绍