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

【分布式系统学习】CAP原理详解 概述:互联网最重要任务莫过于海量数据处理,即大规模分布式系统,分布式是互联网的核心技术!!!如上所述,分布式系统是无法同时满足CAP三个特性的。1.Atomicity(原子性)一个事务中的所有操作,要么全部完成,要么全部不完成,不会在中间某个环节结束。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。2.Consistency(一致性)在事务开始之前和事务结束以后,数据库的完整性没有被破坏。3.Isolation(隔离性) 阅读详情

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

一、CAP定理

我们了解到分布式是将一个业务拆分成多个子业务,就有了我们的分布式系统,而CAP定理就是针对分布式系统的。CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),也称为帽子原理。

  1. C:Consistence,一致性(强一致性)。所有子业务在同一时刻读取的数据都具有相同的值。

  2. A:Availability,可用性,好的响应性能。每次请求都能获取到非错的响应。

  3. P:Partition tolerance,分区容忍性(分区容错性)。某个子业务发生故障时,系统仍能够继续运行。

二、关于三选二

  • 通过字面意思我们可以理解为这是分布式系统的三个重要属性。也可以这样说,这个分布式系统有一致性,有可用性,有分区容错性(这里可能会因为这个词的陌生而觉着别扭,需要简单理解下)。
  • 很多资料说明对一个分布式系统来说不可能同时满足以上三点,只能实现其中俩点。  也有说分区容忍性是必须实现的,我们只能在剩余俩点中二选一。 可以看出矛盾点来自于分区容忍性,让我们来了解下。

三、分区容忍性

分区:一个分布式系统里各子业务的网络应该是连通的。因一些原因使得这些子业务之间的网络不通了,从而导致系统被切分成若干个孤立的区域。这就是分区。

分区容忍性:如果数据只保存在一个子业务中,那么出现分区时,其它子业务就访问不到数据了,这时出现的分区是无法容忍的。

如何提高分区容忍性:提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里,容忍性就提高了。

举个例子:一个简单的分布式商城,它有俩个业务,一个库存子业务,一个订单子业务。当用户通过订单子业务下单时,订单子业务需要告诉库存让其数量-1,当他们之间网络不通时,就形成了俩个孤立的区域,形成了分区。这时就没实现分区容忍性。我们想要避免这种情况就需要在下单时将下单进行复制同时告诉库存,这样即使出现了分区,下单这一数据项也分布到了这俩个区,容忍性就提高了。

然而,要把数据复制到多个子业务,就会带来一致性的问题,就是多个子业务上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部子业务写成功,而这等待又会带来可用性的问题。

小结

关系型数据库是单节点无复制的,因此不具备分区容忍性。所以CAP仅适用于原子读写的NOSQL场景中。而分布式系统都需要满足分区容忍性P。所以对于分布式系统来说我们要在一致性C与可用性A之间进行权衡。

四、一致性与可用性的矛盾

上面我们通过复制下单这一数据项提高了分区容忍性。解决问题的同时又出现了新的问题,如果订单业务写的时候出现错误,就会出现没订单但是库存却少了的情况,导致数据不一致。如果想要解决这个问题,我们就需要等待订单写成功后再写库存,这个过程中必须暂停库存的操作,就失去了可用性。所以在实际应用中就要根据实际场景来进行取舍。

五、思考

在这种情况下有没有办法进一步的优化呢,让我们带着这个疑问继续学习吧。

分布式定理CAP、BASE与应用 前言 CAP、BASE等概念大家应该经常听过,本文主要对这些理论的学习总结,个人更倾向于想了解为什么会有这些理论,以及有什么用,因此会介绍它们的作用和应用。 CAP定理 定义 分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理正是解决节点状态如何同步这个问题的基本定理,也是理解分布式系统的起点。 值得一提的是,涉及到节点同步才会涉及到CAP,比如无状态的机器就不存在CAP一说,而如ZooKeeper涉及到多个节点的数据同步,就会涉及到CAP 分布式系统有三个指标:Consiste. 阅读详情

相关推荐

分布式文件系统设计:HDFS如何应用CAP定理

在数字化时代,数据的爆炸性增长使得单机文件系统早已无法满足存储和处理的需求。分布式文件系统应运而生,它将数据分散存储在多个物理节点上,通过网络协同工作,从而提供了远超单机的存储容量、吞吐量和容错能力。然而,分布式环境并非乌托邦。网络延迟、节点故障、网络分区(Network Partition)等问题层出不穷。如何在这样一个充满不确定性的环境中,设计出既可靠又高效的分布式文件系统,是工程师们面临的巨大挑战。

小程序开发 846

分布式系统的 CAP 定理

CAP定理指出,在一个分布式系统中,对于一致性、可用性、分区容错这三个特性,不可能同时满足,而是必须有所舍弃。我们设计分布式系统时,必须在三者之间(尤其是一致性和可用性之间)有所取舍和平衡。 作者:王克锋 出处:https://kefeng.wang/2018/07/26/distributed-cap/ 版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。 1 概述 ...

kefeng.wang 的博客 1万+

Zookeeper【概念(集中式到分布式、什么是分布式 、CAP定理 、什么是Zookeeper、应用场景、为什么选择Zookeeper 、基本概念) 】(一)-全面详解(学习总结---从入门到深化)

Zookeeper【概念(集中式到分布式、什么是分布式 、CAP定理 、什么是Zookeeper、应用场景、为什么选择Zookeeper 、基本概念) 】(一)-全面详解(学习总结---从入门到深化)

982

【RPC-Python】深入RPC分布式原理

前面几节讲的都是单机 RPC 服务的模式,无论是多线程也好多进程也好,它们都只能算是单点的设计。现代企业的关键性 RPC 服务是绝不可以只使用单点部署的。本节我们要对 RPC 服务进行分布式化,使得服务可以容忍个别节点故障仍能继续对外提供服务。 客户端 当 RPC 服务部署在多个节点上时,客户端得到的是一个服务列表,有多个 IP 端口对。客户端的连接池可以随机地挑选任意的 RPC 服务...

柠檬柠檬C的博客 3693

深入浅出 -- 系统架构之分布式CAP理论和BASE理论

通篇看完,大家会发现CAP理论并没有那么强大,它的作用更多局限于分布式存储领域,同时也并非整个分布式存储领域都会用到CAP思想,如今主流的分片式存储架构,就摒弃了传统的CAP模型。而BASE理论,则广泛运用于各类分布式系统,其中定义的三个概念,覆盖了分布式系统的大多数场景,比如微服务中的服务降级、熔断、限流机制,就是“基本可用”的一种体现。最后,在之前的文章中,我一直强调大家不要听风就是雨,学习技术时,务必保持审慎怀疑的态度!比如本文讨论的BASE理论,90%资料都在告诉你,它是CAP。

xiaoli8748的专栏 3643

分布式系统 CAP 定理 P 代表什么含义

内部使用 paxos 选举投票机制,只有获取半数以上的投票才能成为 leader,否则重新投票,所以部署的时候最好集群节点不小于 3 的奇数个(但是谁能保证跪掉后节点也是奇数个呢);作者在网络上查阅了很多关于 CAP 文章,虽然这些文章对于 P 的解释五花八门,但总结下来这些观点大多都是指 P 是不可缺少的,也就是说在分布式系统只能是 AP 或者 CP,这种理论与我之前所认识的理论(存在分布式 CA 系统)是冲突的,所以才有了疑惑。允许至少一个节点更新状态会导致数据不一致,即丧失了 C 性质。

黎明就要到来 620

分布式CAP定理,为什么不能同时满足三个特性?

在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。 根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。 一、CAP的定义 Consistency (一致性): “all nodes see...

10万+

OLED 驱动模块程序代码

作为嵌入式软件开发,可能经常会使用单片机连接驱动显示屏,实现人机交互的功能,通常可选择的有 OLED 和 LCD 等,其中相关驱动代码例程网上更是数不胜数。 本文介绍的是 OLED, 常见代表有 0.96 寸的OLED,网上也有很多相关的驱动代码,但是大部分代码都是能用即可,不是特别关注驱动代码的整体架构,以下是个人整理的 OLED 驱动代码,支持配置 SPI 和 IIC 两种接口方式(目前只是测试了 SPI,IIC 有待验证)。

大橙子的博客 4291

分布式之CAP原则详解

一、概述 CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。 CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。                   ...

hayhead的博客 967

Vue集成飞书前端JSSDK

文章目录前言<1>飞书前端JSSDK<2>使用步骤1.将JSSDK引入到VUE2.读入数据总结 前言 公司需要使用飞书软件,所以转战飞书开发,也是对新知识的探索与研究,飞书SDK也一直都在更新,路虽远,行必达。 <1>飞书前端JSSDK 1、官网地址:https://open.feishu.cn/document/uYjL24iN/uITO4IjLykDOy4iM5gjM 2、当前使用的飞书前端JSSDk的版本:1.5.4 <!-- 在html文档中 --&gt

A 1万+

POWER SI仿真流程

一、打开软件Power SI二、加载PCB,可以直接使用brd文件,不用再进行格式转换三、check Stackup,与原来的PCB叠层对照一遍,检查数据加载后有没有出错。四、select Nets,加载brd文件后,可能所有的网络都处于使用状态,先在右侧net manager下面右键disable all nets,再使能需要仿真的电源网络(如果要仿真的网络没有归属到电源网络,在其上右键,选classfy as power \ground nets)

lx5213的博客 1325

分布式-CAP定理

在分布式学习中,我们经常遇到一个概念便是CAP,它是分布式很重要的理论基础。很多分布式算法也是在不断的在解决相关问题,今天就让我们重新学习或者回顾一下这个知识点吧,加深印象打牢基础。 一、简介 CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),由计算机科学家 Eric Brewer 在 2000 年分布式计算原理研讨会上提出。这三个值指的是分布式系统的中,一致性 (Consistency),可用性 (Availability),P代表分区容错性 (Pa

Road_的专栏 1464

Python爬虫:无账号无限制获取企查查信息

无限制企查查爬虫 ​通过网上爬虫获取了全国所有企业,然后就需要补充企业信息,首先想到的就是企查查,启信宝等专业网站,最终选择了企查查,尝试了多种方法: 1、selenium爬虫,绕过企查查的登录验证,但账号和IP限制太大,最终放弃 2、通过requests直接请求+cookies,遇到了cookie有效期和限制问题 不断的尝试和修改参数,最终发现一种有效方式selenium+ wep 只需要IP代理,不需要账号,没有限制,因为是没有登录,拿到的信息有限,能展示的都能获取。 一、初始化..

攻城狮的家园 1万+

架构师都该懂的 CAP 定理

面对可能出现的网络延迟,不可预估的请求流量等情况,设计一个分布式系统,我们通常围绕系统高可用,数据一致性的目标去规划和实现,想要完全实现这个目标,却并非易事。由此,分布式系统领域诞生了一个基本定理,即 CAP 定理,用于指导分布式系统的设计,从系统高可用,数据一致性,网络容错三个角度将分布式系统的特性抽成一个分区容错一致性模型。这样一来,让系统设计者只需根据业务场景特点,进行权衡设计适合业务场景的分区容错一致性模型即可,很大程度简化了分布式系统设计的难度。 也因此,CAP 定理是架构师所必须要掌握的内容,.

one的博客 1096

LabVIEW工程密码保护机制与移除技术详解

LabVIEW作为工业自动化领域广泛使用的图形化编程工具,其密码保护机制涉及文件加密与权限控制等核心技术。从技术实现来看,现代版本采用AES-128加密结合SHA-256哈希校验,而经典版本使用XOR加密配合Base64编码。理解这些加密原理对于工程维护、灾难恢复等合法场景至关重要。在实际应用中,密码移除工具需要处理不同版本的文件结构差异,包括解析XML描述区的Protection标签、动态识别版本并应用对应解密策略。这类技术在工业设备维护、教学研究等场景具有重要价值,但必须注意遵守法律边界,确保拥有合法的

weixin_34161083的博客 392

多智能体强化学习MASAC算法:从原理到PyTorch实战详解

深度强化学习通过智能体与环境的交互试错来学习最优策略,是解决复杂序列决策问题的核心技术。其核心原理在于利用价值函数或策略梯度来最大化累积奖励,在机器人控制、游戏AI等领域展现出巨大技术价值。当面对多个智能体需要协同或竞争的复杂动态环境时,单智能体算法因环境非平稳性而面临挑战,多智能体强化学习应运而生。Multi-Agent Soft Actor-Critic (MASAC) 算法融合了SAC的稳定高效与中心化训练去中心化执行的范式,通过维护中心化Critic网络和独立策略网络,有效解决了多智能体协作中的信用

weixin_30080745的博客 334

大数据篇:CAP定理

大数据篇:CAP定理 经过前两章,我们学习了两个重要概念:一致性和可用性。 今天我会讲述与这两个概念相关的一个定理:CAP定理(CAP Theorem)。 CAP定理 CAP这个概念最初是由埃里克·布鲁尔博士提出的。 在两年后,赛思·吉尔伯特和麻省理工学院的南希·林奇教授在他们的论文:Brewer’s Conjecture and the Feasibility of Consistent, Av...

老肥猪的博客 1273

布尔可满足性问题(SAT)深度研究

布尔可满足性问题(Boolean Satisfiability Problem, SAT)是计算机科学和数理逻辑中的一个核心决策问题。其定义为:对于一个给定的布尔逻辑公式,判断是否存在一组对其变量的真值赋值(即,为每个变量指定真 (True) 或假 (False)),使得该公式的最终计算结果为真。如果存在这样的赋值,则称该布尔公式是可满足的 (satisfiable);否则,称其为不可满足的 (unsatisfiable)。

步子哥的博客 499

CAP定理:三选二,架构师必须学会的取舍

你好,我是程序员贵哥。今天我要与你分享的主题是CAP定理。在分布式系统的两讲中,我们一起学习到了两个重要的概念:可用性和一致性。而今天,我想和你讲解一个与这两个概念相关,并且在设计分布式系统架构时都会讨论到的一个定理——

qq_33240556的博客 723

【MicroPython编程-ESP32篇:设备驱动】-BNO08X系列传感器驱动

BNO08X 系列(BNO085/BNO086)是一款系统级封装 (SiP),集成了三轴加速度计、三轴陀螺仪、磁力计以及运行 CEVA SH-2 固件的 32 位 ARM® Cortex™-M0+ 微控制器。SH-2 包含 MotionEngine™ 软件,该软件提供复杂的信号处理算法来处理传感器数据,并提供精确的实时 3D 姿态、航向、校准加速度和校准角速度,以及更高级的上下文输出。BNO08X 集成在一个 28 引脚 LGA 封装中,尺寸为 3.8mm x 5.2mm x 1.1mm。它兼容 Andro

视觉与物联智能 696

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

cap理论具体含义_架构师都该懂的 CAP 定理

面对可能出现的网络延迟,不可预估的请求流量等情况,设计一个分布式系统,我们通常围绕系统高可用,数据一致性的目标去规划和实现,想要完全实现这个目标,却并非易事。由此,分布式系统领域诞生了一个基本定理,即 CAP 定理,用于指导分布式系统的设计,从系统高可用,数据一致性,网络容错三个角度将分布式系统的特性抽成一个分区容错一致性模型。这样一来,让系统设计者只需根据业务场景特点,进行权衡设计适合业务场景...

weixin_26963033的博客 935

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

机器学习中的CAP定理:一致性与可用性权衡

一致性:每次读取都会收到最新的写入或错误可用性:每个请求都会收到非错误响应(但不一定是最新数据)分区容错性:尽管节点之间发生网络故障,系统仍继续运行CA系统:像PostgreSQL这样的传统关系数据库优先考虑一致性和可用性,但在网络分区发生时难以应对CP系统:像HBase或MongoDB(在某些配置中)这样的数据库在网络分区发生时优先考虑一致性而非可用性AP系统:Cassandra和DynamoDB倾向于可用性和分区容错性,采用最终一致性模型。

codeshare1135的博客 1072

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

21天学会C语言?3天学会弹钢琴?放弃一切错误方法,从今天开始“刻意练习”,因为这才是最强大的,也是唯一正确的学习方法。--《刻意练习》Anders Ericsson引言CAP问题已经成...

dotNET跨平台 563

分布式理论:CAP定理与BASE理论

分布式理论:CAP定理与BASE理论

wang_luwei的博客 546

CAP 定理(springcloud学习三)

分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 一、分布式系统的三个指标 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。 Consistency Availability Parti...

qq_40180411的博客 596

java cap理论_架构师都该懂的 CAP 定理

面对可能出现的网络延迟,不可预估的请求流量等情况,设计一个分布式系统,我们通常围绕系统高可用,数据一致性的目标去规划和实现,想要完全实现这个目标,却并非易事。由此,分布式系统领域诞生了一个基本定理,即 CAP 定理,用于指导分布式系统的设计,从系统高可用,数据一致性,网络容错三个角度将分布式系统的特性抽成一个分区容错一致性模型。这样一来,让系统设计者只需根据业务场景特点,进行权衡设计适合业务场景...

weixin_42222065的博客 806
上一篇: 分布式学习(一)——小白入门篇
下一篇: 分布式学习(三)——ACID原理与BASE理论
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值