人物背景

老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐。据说之前炒某币败光了所有家产,甚至现在还有欠债。

阿珍,女,本名陈家珍,刚刚入职不久的实习生,虽然是职场菜鸟但聪明好学。据说是学校的四大校花之一,追求她的人从旺角排到了铜锣湾,不过至今还单身。

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

阿珍吃完饭刚刚回来,看到老徐正在吃方便面,说:“老徐,不至于吧。你为了还债,中午就吃这个呀?”

老徐不慌不忙地嚼着方便面,说:“这可是白象的方便面,国货之光,超级难买,我好不容易才买到的。”

阿珍坐了下来,说:“闻着还挺香,我也买点尝尝。对了,老徐,上午开会的时候,听你们总说CAP、CAP的,CAP是什么意思?超级爱放P吗?”

老徐嘴里方便面差点喷了出来,笑着说:“第一次听你这么解释的,来!我给你科普一下。”

CAP 是加州大学伯克利分校(University of California at Berkeley)的计算机教授

埃里克·布鲁尔(Eric A. Brewer)在2000年的分布式计算原理研讨会(PODC,Symposium on Principles of Distributed Computing)上提出的一个猜想。

2002 年,麻省理工学院(MIT,Massachusetts Institute of Technology)的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)发表了对这个猜想的证明,使之成为分布式计算领域公认的一个定理。

CAP定理是指在一个互相连接并共享数据的节点的分布式系统中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。

CAP,是Consistence、Availability、Partition三个英文单词的首字母缩写。

其中,一致性是指对某个指定的客户端来说,读操作保证能够返回最新的写操作结果;可用性是指非故障的节点在合理的时间内返回不是错误和超时的合理响应。分区容忍性是指当出现网络分区后,系统能够继续运行。

因为网络本身无法做到100%可靠,有可能出故障,分区是一个必然的现象,所以我们必须选择分区容忍性(P)。在分布式系统中不可能选择CA(一致性和可用性),只能选择CP(一致性和分区容错性)或者AP(可用性和分区容错性)。

当选择CP时,发生分区现象后,为了保证数据的一致性,客户端访问任意节点都会被返回错误,所以不能满足可用性,比如ZooKeeper。

当选择AP时,发生分区现象后,为了保证节点的可用性,客户端可以访问某个节点上可能过时的数据,所以不能满足一致性,比如Eureka。

阿珍用手捂着嘴打了一个哈欠,眨了眨还有泪花的眼睛,说:“这理论性也太强了吧,还是说说你的白象方便面在哪买的吧。”

最后,谢谢你这么帅,还给我点赞关注

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

老徐和阿珍的故事:CAP是什么?超级爱放P吗?的更多相关文章

  1. 老徐和阿珍的故事:ArrayList和LinkedList的效率到底哪个高?

    人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐.据说之前炒某币败光了所有家产,甚至现在还有欠债. 阿珍,女,本名陈家珍,刚 ...

  2. 老徐和阿珍的故事:Runnable和Callable有什么不同?

    人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐.据说之前炒某币败光了所有家产,甚至现在还有欠债. 阿珍,女,本名陈家珍,刚 ...

  3. 老徐FrankXuLei 受邀为花旗银行讲授《微软WCF服务分布式开发与SOA架构设计课程》

    老徐FrankXuLei 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程> 受邀为花旗银行上海研发中心讲授<微软WCF服务分布式开发与SOA架构设计课程 ...

  4. WebGPU图形编程(1):建立开发环境 <学习引自徐博士教程>

    首先感谢徐博士提供的视频教程,我的博客记录也是学习徐博士进行的自我总结,老徐B站学习视频链接网址:WebGPU图形编程 - 免费视频教程(1):建立开发环境_哔哩哔哩_bilibili 创建之前你需要 ...

  5. 苏州6617.9373(薇)xiaojie:苏州哪里有xiaomei

    苏州哪里有小姐服务大保健[微信:6617.9373倩儿小妹[苏州叫小姐服务√o服务微信:6617.9373倩儿小妹[苏州叫小姐服务][十微信:6617.9373倩儿小妹][苏州叫小姐包夜服务][十微信 ...

  6. day1 执行用例

    故事1 今天的工作,是执行已写好的"回馈"模块用例 每个子模块的用例都有优先级之分 肯定要先进行通过性测试,验证正常流 因此,我优先执行各个子模块优先级最高的那条用例,进行通过性测 ...

  7. 福州11911.562(薇)xiaojie:福州哪里有xiaomei

    福州哪里有小姐服务大保健[微信:11911.562倩儿小妹[福州叫小姐服务√o服务微信:11911.562倩儿小妹[福州叫小姐服务][十微信:11911.562倩儿小妹][福州叫小姐包夜服务][十微信 ...

  8. 【Win 10应用开发】响应系统回退键的导航事件

    按例,老周今天要讲一个故事,这个故事之前老周在微博上分享过.大伙知道在8.1的时候,有一个扩展类库——NotificationExtensions,可以真TMD轻松生成通知XML模板,其实,这个类库也 ...

  9. App测试

    (1)App独特测试点: 客户端兼容性测试:系统版本.不同深度定制的rom.屏幕分辨率.中断测试.安装.卸载.升级.对其他程序的干扰等 需要的一些工具: appnium / lr /  jmeter ...

随机推荐

  1. Solution -「SV 2020 Round I」「SRM 551 DIV1」「TC 12141」SweetFruits

    \(\mathcal{Description}\)   link.   给定 \(n\) 个水果,每个结点可能有甜度 \(v_i\),或不甜(\(v_i=-1\)).现在把这些水果串成一棵无根树.称一 ...

  2. Solution -「ARC 110F」Esoswap

    \(\mathcal{Description}\)   Link.   给定 \(0\sim n-1\) 的排列 \(p_{0..n-1}\),每次操作给出 \(i\),交换 \(p_i\) 和 \( ...

  3. c++ 程序编译后运行时的内存分配

    程序编译后运行时的内存分配 太好的文章了,看到不得不转,转自:http://blog.sina.com.cn/s/blog_5420e0000101a0w1.html 一.编译时与运行时的内存情况 1 ...

  4. 手撸一个springsecurity,了解一下security原理

    手撸一个springsecurity,了解一下security原理 转载自:www.javaman.cn 手撸一个springsecurity,了解一下security原理 今天手撸一个简易版本的sp ...

  5. 使用jvisualvm监控k8s内java项目

    资源文件yaml配置 -javaagent:/usr/skywalking/agent/skywalking-agent.jar -Dcom.sun.management.jmxremote -Dja ...

  6. 忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)

    1.使用cmd的烦恼 嵌入式开发经常会用到命令行工具,Windows系统自带的command line工具(cmd.exe)的简陋程度不用说大家都深有体会.使用cmd.exe有如下几个主要的烦恼: 没 ...

  7. smbms项目核心功能实现

    SMBMS 数据库: 项目如何搭建? 考虑使用不使用Maven?依赖,Jar 1.项目搭建准备工作 搭建一个maven web项目 配置Tomcat 测试项目是否能够跑起来 导入项目中会遇到的jar包 ...

  8. idea Transparent-native-to-ascii 是否需要勾选?

    目录 首先看一下官方对该选项的解释: 第一段是说标准的Java api是用ISO 8859-1编码.properties文件的,所以如果你在properties文件中可以使用转义序列表示没在这个编码中 ...

  9. Hadoop - HDFS学习笔记(详细)

    第1章 HDFS概述 hdfs背景意义 hdfs是一个分布式文件系统 使用场景:适合一次写入,多次读出的场景,且不支持文件的修改. 优缺点 高容错性,适合处理大数据(数据PB级别,百万规模文件),可部 ...

  10. spring 使用depends-on, lazy-init, defalut-lazy-init

    depends-on 如果一个bean是另一个bean的依赖, 可以使用ref属性或者<ref/>标签来实现依赖 那么被依赖bean一定是要比依赖bean率先实例化, 而depends-o ...