分布式事务(一)、CAP,BASE理论

CAP理论,BASE理论和ACID模型 基础理论 先简单介绍下数据一致性的基础理论。 强一致  当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性。 弱一致性  系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会... 阅读详情

目录

前言

事务的一致性

CAP理论

BASE理论


前言

在之前的MySQL(二)、事务 文章中我们介绍了MySQL事务的四个特性(ACID),本系列我们来讲解在分布式系统中事务可能遇到的问题以及对应的解决方案,本篇先来讲一下CAP以及BASE理论。

事务的一致性

  • 强一致性:系统中的某个数据被成功更新后,后续的访问都能看到更新后的值;
  • 弱一致性:系统中的某个数据被更新后,后续的访问可能得到更新后的值,也可能是更改前的值;
  • 最终一致性:系统中的某个数据被更新,经过一段时间后,最终所有的访问都是更新的值;

刚性事务:遵循ACID原则,强一致性;

柔性事务:遵循BASE理论,最终一致性;

事务的四个特性(ACID):

  • 原子性(Atomicity):事务被视为一个不可分割的最小工作单元,事务中的所有操作要么全部提交成功,要么全部失败回滚;
  • 一致性(Consistency):数据库总是从一个一致性的状态转换到另外一个一致性的状态;
  • 隔离性(Isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的;
  • 持久性(Durability):一旦事务提交,则其所做的修改就会永久保存到数据库中;

柔性事务对事务四个特性(ACID)的支持情况:

  • 原子性:完全支持。
  • 一致性:只提供最终一致性支持。
  • 隔离性:不完全保证,通常为了系统的吞吐和性能,会一定程度上放弃对隔离性的要求。
  • 持久性:完全支持。

CAP理论

CAP理论:在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素最多只能同时实现两点,不可能三者兼顾。

  • 一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本) ;
  • 可用性(Availability):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性); 
  • 分区容忍性(Partition tolerance):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择;

图中重叠的部分就是在分布式环境下,必须做出的取舍:要么CP,要么AP,要么AC,但是不存在CAP。

  • CP:牺牲可用性。复制同步的协议一般使用严格的法定数协议 (Paxos、Raft、ZAB)或者2PC协议。CP类型的系统有MongoDB、HBase、 Zookeeper、Redis等。
  • AP:牺牲一致性。复制同步的协议一般使用非严格的法定数协议。AP类型的系统有 Couch DB、Cassandra、Amazon Dynamo等。
  • AC:抛开RDBMS的Oracle和MySQL不谈,分布式系统中宣称是CA系统的有谷歌的Spanner 和阿里的OceanBase。

问:为什么分布式系统中无法同时保证一致性和可用性?

答:首先一个前提,对于分布式系统而言,分区容错性是一个最基本的要求,因此基本上我们在设计分布式系统的时候只能从一致性(C)和可用性(A)之间进行取舍。

如果保证了一致性(C):对于节点N1和N2,当往N1里写数据时,N2上的操作必须被暂停,只有当N1同步数据到N2时才能对N2进行读写请求,在N2被暂停操作期间客户端提交的请求会收到失败或超时。显然,这与可用性是相悖的。

如果保证了可用性(A):那就不能暂停N2的读写操作,但同时N1在写数据的话,这就违背了一致性的要求。

CAP和ACID中的A和C是完全不一样的:

C的区别:

  • ACID一致性是有关数据库规则,数据库总是从一个一致性的状态转换到另外一个一致性的状态;
  • CAP的一致性是分布式多服务器之间复制数据令这些服务器拥有同样的数据,由于网速限制,这种复制在不同的服务器上所消耗的时间是不固定的,集群通过组织客户端查看不同节点上还未同步的数据维持逻辑视图,这是一种分布式领域的一致性概念;

A的区别:

  • ACID中的A指的是原子性(Atomicity),是指事务被视为一个不可分割的最小工作单元,事务中的所有操作要么全部提交成功,要么全部失败回滚;
  • CAP中的A指的是可用性(Availability),是指集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求;

BASE理论

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)的缩写。

在分布式系统中,CAP理论是指导思维,而BASE理论是CAP理论中AP的延伸,是对 CAP 中的一致性和可用性进行一个权衡的结果,核心思想是:即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  • 基本可用(Basically Available):指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。
  • 柔性状态(Soft state):指允许系统存在中间状态,并认为该中间状态不会影响系统整体可用性。比如,允许不同节点间副本同步的延时就是柔性状态的体现。
  • 最终一致性(Eventually consistent):指系统中的所有副本经过一定时间后,最终能够达到一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

前面提到的柔性事务就是BASE理论的实现,在之后的文章中会详细讲解刚性事务和柔性事务的分类及实现。

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢! 

使用RepeatModeler和RepeatMasker注释基因组重复序列 重复序列注释有两种常用策略,基于同源序列相似性和基于重复序列结构特征。RepeatMasker是基于同源序列相似性注释序列的常用工具, RepeatModeler可用来从头对基因组的重复序列家族进行建模注释,它的核心组件是RECON和RepatScout。 这篇教程介绍如何使用RepeatModeler从头鉴定基因组的重复序列,之后用RepeatMasker根据自... 阅读详情

相关推荐

三相Vienna整流器过零点电流畸变?试试这个SVPWM调制波补偿技巧

本文针对三相Vienna整流器在电流过零点附近出现的电流畸变问题,提出了一种基于SVPWM调制波补偿的有效解决方案。该方法通过注入零序分量重构占空比,巧妙解决因拓扑约束导致的调制矛盾,在基本不增加计算复杂度的前提下,显著平滑电流波形,降低THD。

weixin_29212867的博客 114

事务的特性(ACID、BASE)

在软件开发中,事务管理是至关重要的一部分。它确保了数据的一致性和可靠性,同时也提高了系统的可靠性和性能。接下来,我们将深入了解事务的特性,包括ACID属性、隔离级别、并发控制等。

weixin_53623989的博客 1076

手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析)

本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。

svm4gardener的博客 541

Java - Spring Boot 事务支持

在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。 事务是恢复和并发控制的基本单位。 事务具有4个属性: 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。.

唐僧取经 312

嵌入式开发必看:STM32 DMA双缓冲配置全攻略(含CubeMX教程)

本文详细解析了STM32 DMA双缓冲机制的原理与优势,并提供了基于CubeMX的完整配置教程。通过硬件自动切换两个缓冲区,实现DMA传输与CPU处理的真正并行,有效降低中断频率,提升高速数据采集、音频流处理等场景下的系统效率和实时性。

weixin_29212429的博客 173

4 种方法识别Linux系统 USB 设备

导读 如果在系统中插入一个设备,尤其是在桌面环境下,比如 USB 设备,它会自动挂载到一个指定目录,一般是在 /media/username/device-label 目录下,之后你就可以进入到该目录下访问那些文件了。然而,在服务器上就不是这么回事了,你必须手动挂载这个设备,并且指定一个挂载点。 查询USB设备 Linux 系统使用 /dev 目录下特定的设备文件来标识插入的

郑帅的博客 1986

分布式事务之BASE理论

在分布式事务之CAP定理一文中,我们了解到了分布式事务不可能同时实现Consistency、Availability 和 Partition-tolerance。Basically Available(基本可用);Soft state(软状态);Eventually consistent(最终一致性);BASE定理的核心思想:即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。

itigoitie的博客 454

推理引擎终极对决:TensorRT vs ONNX Runtime,YOLOv8速度差30%的核心原因与实操指南

若你使用NVIDIA GPU,且追求极致速度和低延迟,TensorRT是唯一选择,尤其是边缘设备和实时场景;若你需要跨硬件部署、快速验证原型,或预算有限(无需NVIDIA GPU),ONNX Runtime是性价比之王;对于YOLOv8这类检测模型,TensorRT的FP16/INT8量化是“免费的速度提升”,建议优先采用。最后提醒:推理引擎的优化是“细节决定成败”——同样的引擎,不同的预处理方式、显存配置、批大小,都会导致10%-20%的性能差异。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1026

分布式——BASE理论

BASE 理论是对 CAP 理论的一种延伸和补充,它是基于 Basically Available(基本可用)、Soft state(软状态)和 Eventually Consistent(最终一致性)这三个特性来描述分布式系统的。 BASE 理论面向的是大型高可用可扩展的分布式系统,和传统事务的 ACID 是相反的,它完全不同于 ACID 的强一致性模型,而是通过牺牲强一致性来获得可用性,并允许数据在一段时间是不一致的。

qq_62097431的博客 1804

【主题建模】一种基于深度学习的主题建模方法:BERTopic(实战篇)

BERTopic 是基于深度学习的一种主题建模方法。2018 年底,Devlin et al. 提出了 Bidirectional Encoder Representations from Transformers (BERT)。BERT 是一种用于 NLP 的预训练策略,它成功地利用了句子的深层语义信息。

Data · Model · Agent · Repeat 2万+

准备生日礼物

摘要: 题目要求统计某月份需要准备的员工生日礼物数量。输入包括目标月份、员工姓名列表和对应的生日列表(格式为Year/Month/Day)。需处理重复员工(以最后一次录入为准),统计该月生日的员工人数。示例1中5月有3名员工生日,输出3;示例2中10月有6名,输出6。解题关键在于使用哈希表去重(以员工姓名为键),拆分生日字符串提取月份进行匹配。代码实现(C++/Java/Python)均遵循以下步骤:读取输入、哈希去重、解析月份并统计目标月份人数。时间复杂度为O(n),空间复杂度O(n)。

面试高手的博客 298

base理论

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到...

qq_23603437的博客 1613

【Bug已解决】Context window exceeded / Token limit reached — Claude Code 上下文窗口超限解决方案

Claude Code 长会话中报上下文窗口/Token 超限,本质是对话历史、文件内容、工具结果累积超过 200K 上限。文中给出 /clear、/compact、分批读大文件、限制工具输出、配置 autoCompact 等完整方案。

一键难忘的博客 6728

分布式事务专题-基本理论(CAP、BASE)

基于微服务架构设计功能,总是绕不开分布式事务的问题,前面已经讲解了分布式事务的基本概念,这一篇文章,主要介绍一下分布式事务基本理论CAP和BASE理论,有了这些理论才能结合业务选择合适的方案。BASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent (最终一致性)三个短语的缩写。......

少说,多做 5946

计算机控制技术及应用

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

分布式事务理论—CAP与BASE

分布式事务理论—CAP与BASE

一恍过去 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

解决分布式事务问题,需要一些分布式系统的基础知识作为理论指导。

莫等闲 白了少年头 空悲切 1990

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

05分布式事务之CAP理论和BASE理论

05分布式事务之CAP理论和BASE理论

欢迎阅读我的博客 1166

CAP和BASE理论以及分布式事务

回想12年左右刚开始接触Nosql,各种Nosql数据库如雨后春笋般出现,如MongoDB、Redis、Hadoop、CouchDB等等,其中有一篇CAP理论文章非常火。到现在CAP、ACID、BASE各种概念,但分布式事务是必须面对的问题。 ACID 数据库管理系统中事务(transaction)的四个特性原子性(Atomicity) 原子性是指事务是一个不可再分割的工作单元,事务中的操作要...

怀素的专栏 1420

分布式事务学习笔记(一)分布式事务问题、CAP定理、BASE理论、Seata

把这三个行为看做一个"业务",保证“业务”的原子性,要么所有操作全部成功,要么全部失败,不允许出现部分成功部分失败的现象,这就是。,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务。但这段时间里,服务处于阻塞状态,但不管是哪一种模式,都需要在子系统事务之间互相通讯,协调事务状态,也就是需要一个。,致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。也就是说,在P一定会出现的情况下,A和C之间只能实现一个。,就不能等待网络恢复,那不同节点之间就会出现数据不一致,

挑灯日记 记录自己 1458

分布式事务:CAP理论详细介绍及发展历史

Eric Brewer是CAP理论和BASE之父。ACID及限制在数据库事务的ACID(原子性、一致性、隔离性和持久性)四大特性确保了单个数据库内部事务处理的可靠性,但在分布式系统环境下,由于网络延迟、节点故障以及数据复制等因素,ACID特性无法直接应用于跨多个数据库或服务的分布式事务。传统的ACID模型在分布式场景下可能导致性能下降或者可用性的损失。Eric Brewer提出了CAP定理,表明在分布式系统中不可能同时满足一致性(C)、可用性(A)和分区容错性(P)这三个要求,在设计时必须有所取舍。

ycsdn10的博客 1280

分布式事务之CAP理论和BASE理论详解

分布式事务之CAP理论和BASE理论详解,本篇文章主要讲解了分布式事务之CAP理论和BASE理论的基本概念以及原理,后续为大家讲解分布式事务解决方案,大家敬请期待呦!!

Coder_ljw的博客 758

CAP与BASE:分布式事务理论的双簧舞

CAP与BASE:分布式事务理论的双簧舞

一恍过去 1万+

《分布式事务理论基础:CAP定理 & BASE理论》

学习目标。

weixin_53622554的博客 1105

分布式事务(CAP和BASE理论 解决方案)

分布式事务(CAP和BASE理论 解决方案分布式事务一、基础概念1.1什么是事务1.2本地事务1.3分布式事务1.4分布式事务产生的场景二、2.分布式事务基础理论2.1CAP理论2.2CAP有哪些组合方式2.3总结2.4BASE理论三、分布式事务解决方案2PC(两阶段提交)基于XA协议的两阶段提交2PCTCC补偿机制消息最终一致性Seata方案 分布式事务 一、基础概念 1.1什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,“一手交钱,一手交货”就是一个事务的例子,交钱和交货必 须全部成功,

m0_46690280的博客 1393

事务、分布式事务解决方案、CAP定理和BASE理论

事务和定理、理论说明一、本地事务1.1、事务特性ACID1.2、 事务的隔离级别1.3、 事务的7种传播行为1.3.1、 springboot的使用1.3.1.1、同一个service里面调用1.3.1.2、不同service里面调用1.3.2、如何切换成aspectj动态代理二、CAP 定理与 BASE 理论1.1、CAP 定理1.1.1、CAP 定理说明与图解1.1.2、分布式系统中实现一致性的 算法1.2、为什么会产生base理论1.3、BASE理论1.3.1、BASE含意1.3.2、强一致性、弱一

suqinyi的博客 2900

(一)分布式事务——CAP、BASE理论

分布式事务——理论基础一、分布式事务和单体的事务:二、什么是分布式事务:三、理论基础:1、CAP定理:1.1 一致性:1.2 可用性:1.3 分区容错性:1.4 CAP理论的理解:2、BASE理论:2.1 Basically Available(基本可用):2.2 Soft State(软状态):2.3 Eventually Consistent(最终一致性):2.4 解决问题: 分布式事务——理论基础 一、分布式事务和单体的事务: 以前使用单体架构,往往只有一个服务,使用一个数据库,完成业务的各种要求,.

方方土的博客 811
上一篇: MySQL(五)、存储引擎
下一篇: 分布式事务(二)、刚性事务之 2PC、3PC
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值