文章目录

  • 一、CAP原则(CAP定理)
    • 1. 如何选择CP/AP
  • 二、其他参考

一、CAP原则(CAP定理)

CAP 定理的含义
参考URL: http://www.ruanyifeng.com/blog/2018/07/cap.html
CAP原则(CAP定理)、BASE理论
参考URL: https://blog.csdn.net/kevin_loving/article/details/80655345

CAP理论关注的是数据的读写操作,而不是分布式系统的所有功能。像分布式系统的负载均衡、容错等都不是CAP理论的讨论范围。CAP理论针对的是互相连接并且共享数据的分布式系统的数据的读写操作。

CAP是Consistency、Availablity和Partition-tolerance的缩写。分别是指:

  1. 一致性(Consistency):每次读操作都能保证返回的是最新写操作的结果。

  2. 可用性(Availablity):任何一个没有发生故障的节点,会在合理的时间内返回一个正常的结果;举个例子,查询本应是返回A,结果返回的是B,就是满足了可用性,但是显然,没满足一致性。

  3. 分区容忍性(Partition-torlerance):在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。

    大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。

在分布式系统中,网络不是100%可靠的,所以我们必须选择P。

CAP理论指出:CAP三者只能取其二,不可兼得。其实这一点很好理解:

首先,单机都只能保证CP

有两个或以上节点时,当网络分区发生时,集群中两个节点不能相互通信(也就是说不能保证可用性A)。此时如果保证数据的一致性C,那么必然会有一个节点被标记为不可用的状态,违反了可用性A的要求,只能保证CP。

反正,如果保证可用性A,即两个节点可以继续各自处理请求,那么由于网络不通不能同步数据,必然又会导致数据的不一致,只能保证AP。

1. 如何选择CP/AP

对于分布式存储系统而言,分区容错性§是基本需求,因此只有CP和AP两种选择。一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。

选择CP/AP其实一个很大的难题。一个系统里有很多个功能和业务,而对于不同的业务和功能,我们可以选择不同的模型。举个例子,我们做一个秒杀系统,查询商品的时候我们可以选择AP架构,短时间的数据不一致,保证用户可以查询出列表,但购买商品的时候,我们要选择CP架构,没有库存,就不能进行购买。但是整个秒杀系统,不是AP也不是CP,而是AP和CP的混合。

所以在实际的设计和开发中,我们要灵活运用CAP理论,灵活选择AP或CP架构。

总结: 一般互联网项目,牺牲一致性,保证可用性,把强一致性降级为最终一致性,多用AP。

区块链项目,则一般是CP。

二、其他参考

CAP理论,浅谈我的理解
参考URL: https://blog.csdn.net/lhx574938077/article/details/86823722

CAP理论-快速开始相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. 「数据库系列四」分布式数据库CAP理论与最终一致性

    传统关系型数据库中事务有四个重要的特性,简称ACID,即 原子性 : 事务是一个不可分割的工作单位,事务中的操作要么都成功,如果有一个执行失败,所有的SQL将都被撤销,恢复到事务开始的状态 一致性 : ...

  3. base cap 分布式_神一样的CAP理论被应用在何方?

    " 对于开发或设计分布式系统的架构师工程师来说,CAP 是必须要掌握的理论. 图片来自 Pexels But:这个文章的重点并不是讨论 CAP 理论和细节,重点是说说 CAP 在微服务中的开 ...

  4. cap理论具体含义_分布式事务的CAP理论

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列 ) 分布式事务「2020年」必学,升职加薪你准备好了吗? 事务的基本概念 事务的四大特性ACID 分布式事务产生的场景 前言 通过前面的学习,我 ...

  5. nosql简答什么是最终一致性_NoSql的三大基石:CAP理论BASE最终一致性

    关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11, ...

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

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

  7. 一文带你重新审视CAP理论与分布式系统设计

    这是一篇来自微信公众号的文章,如果图片看不到,可直接跳转到文章出处查看:https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=265076 ...

  8. 分布式系统CAP理论深入探索和分析

    分布式系统CAP理论分析 1.理想的计算机到分布式系统 寻找解决办法 分布式系统作为突破口 分布式系统产生新的问题 理想环境的困境 权衡后的转机 分布式系统总结 2.分布式算法 1.Paxos 2.R ...

  9. 分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法

    1 CAP理论 分布式数据库的设计遵循CAP理论,即一个分布式系统不能同时满足Consistency(一致性).Availability(可用性)和Partition Tolerance(分区容忍性) ...

最新文章

  1. pat 团体赛练习题集 L2-008. 最长对称子串
  2. 破解入门(六)-----实战“内存镜像法”脱壳
  3. IDEA 2020.3.2控制台中文乱码分享(亲测二、下图中控制台的编码改为UTF-8)
  4. 计算机中的字,双字以及存储
  5. 33 windows_33_Proc_windows_job 进程,windows作业
  6. [android] android 获取网络连接信息
  7. shipyard中文版发布
  8. comptia a+_CompTIA认证考试– A +,Network + Security +,CASP,Linux +和IT基础实践测试和网站
  9. Ubuntu安装redis客户端工具及简单使用
  10. 萤火虫小程序_线上服务不断档 萤火虫水洞·地下大峡谷推出“云旅游”新体验...
  11. 微信小程序:实现按钮点击事件
  12. 国外问卷调查赚钱网站
  13. 在线压力测试,测试网站并发量
  14. 【考研英语语法】一般将来时练习题
  15. 升级版“绝悟”AI自带“军师”,解禁王者荣耀全英雄池
  16. vue:不同环境配置不同打包命令
  17. Android使用后端云Bmob实现登录、注册及失物招领
  18. u盘启动Linux什么时候可以拔下来,u盘装系统什么时候拔u盘|pe重装系统什么时候拔掉u盘...
  19. Spring Cloud之微服务概述
  20. CornerStone 遇到的问题及解决方法

热门文章

  1. 山东理工大学ACM平台题答案关于C语言 2098 识别浮点常量问题
  2. 谷歌Chrome浏览器极速模式Never Slow Mode细节曝光
  3. 称重传感器的构造与测重形式
  4. 神经网络:AlexNet
  5. java统一返回结果集封装,解决No converter found for return value of type
  6. 35岁没有技能转行做什么工作岗位好?
  7. 电商详情页缓存架构(一)电商网站的商品详情页架构
  8. 使用Xshell远程连接CentOS7全过程,包括遇到的各种问题集合及解决方案
  9. LAMP--系统、平台、数据库和程序
  10. python3 get函数,python3请求的GET方法