两阶段提交、三阶段提交和TCC

我们一起来聊一聊分布式:分布式事务(CAP、两阶段提交、三阶段提交) 1 关于分布式系统 1.1 介绍 我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起。明显的弊端就是不易扩展、发布冗重、服务治理不好做。 所以我们把整个系统拆分成若干个具备独立运行能力的计算机服务的集合,而从用户的角度看,是一个完整的系统,但实际上,它是一个分布式服务的集合。 分布式系统主要从以下几个方面进行裂变: 应用可以从业务领域拆分成多个module,每个module还可以再按项目结构分成接口层、业务层、数据访问层;当然也可以按访问入口进行拆分,如移动、桌 阅读详情

目录

 

一、2PC

1.1、提交事务请求(投票阶段)

1.2、执行事务提交


一、2PC

1.1、提交事务请求(投票阶段)

事务询问->执行事务->反馈事务询问

事务询问:由协调者向所有参与者发送事务内容,询问是否可以执行事务提交操作

执行事务:由参与者执行事务操作,并将Undo(拒绝)和Redo(准备好,将要操作)信息记入事务日志中

反馈事务询问:由参与者给协调者反馈给协调者事务的执行结果,如果执行成功反馈YES,否者反馈NO

1.2、执行事务提交

该阶段拥有两种操作:执行事务提交、中断事务

执行事务提交:发送提交请求->事务提交->反馈事务提交结果->完成事务

中断事务:发送回滚请求->事务回滚->反馈事务回滚结果->中断事务

总结:二阶段提交将事务处理过程分成两个过程,分别是投票和执行两个阶段,其核心是对每个事务先尝试后提交的处理方式,该提交方式是一个强一致性的算法。

优点:原理简单、实现方便

缺点:同步阻塞、单点问题、脑裂、太过保守

二、3PC

21、CanCommit(提交询问)

事务询问:协调者向参与者发送一个包含事务内容的CanCommit请求,询问是否可执行事务提交操作

反馈事务询问结果:参与者返回CanCommit询问结果

2.2、PreCommit

包含两种操作:执行事务预提交和中断事务

执行事务预提交:发送预提交请求->参与者事务预提交->参与者反馈预提交结果

中断事务:发送中断请求->中断事务

2.3、DoCommit(事务提交)

包含两种操作:执行提交、中断事务

执行提交:发送提交请求->事务提交->反馈事务提交结果->完成事务

中断事务:发送中断请求->事务回滚->反馈事务回滚结果->中断事务

 

总结:相比于两阶段提交,增加一个询问阶段,该阶段的好处是可以让协调者尽早的发现发问题。同时在询问阶段不会锁定资源,降低资源的锁定范围。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南) 本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟和REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。 阅读详情

相关推荐

Opencv全景图像处理实战:柱面与透视展开技术详解

本文详细解析了使用OpenCV实现全景图像处理的两种核心技术:柱面展开与透视展开。通过原理拆解与实战代码演示,指导开发者将360度环绕的鱼眼或球面图像转换为可用的平面视图,适用于街景展示、车载环视、室内测量等计算机视觉应用场景。

weixin_29081163的博客 583

分布式事务常见解决方案整理:二阶段、三阶段、TCC、MQ+本地事务+消息校对

分布式事务常见解决方案整理:二阶段、三阶段、TCC、MQ+本地事务+消息校对

xueping_wu的博客 2134

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 428

分布式事务一致性解决方案学习(两段提交(2pc)、三段提交(3pc)、TCC、消息队列以及Seata四种模式)

在常规的基于关系型、支持 ACID 特性的数据库的 Spring Boot 或者 Cloud 微服务中,AT(Application Transaction)模式是一个较为适合的选择。它通过轻量级的本地事务来提高性能,并且不需要编写补偿机制。TCC(Try-Confirm-Cancel)模式适用于多种不同数据协同执行的场景,特别是当存在不支持 ACID 特性的数据库时。在 TCC 模式中,需要自行实现 try、confirm 和 cancel 三个阶段的业务逻辑,并编写相应的补偿机制来保证数据的一致性。

weixin_57392053的博客 1427

SAP成本计划BAPI接口BAPI_COSTACTPLN_POSTPRIMCOST深度解析与实战指南

在SAP ERP系统中,成本计划是财务与控制模块的核心功能,它涉及对企业未来成本支出的预测与规划。其原理是通过结构化数据模型,将成本要素分配到具体的成本对象上,以实现预算编制和成本控制。这一技术的核心价值在于实现成本数据的标准化、自动化处理,从而提升财务流程效率与数据准确性。在应用场景上,成本计划广泛应用于年度预算编制、项目成本预测、系统间数据集成以及历史数据迁移等关键业务环节。本文聚焦于实现上述流程自动化的关键技术——SAP标准接口BAPI_COSTACTPLN_POSTPRIMCOST,并深入探讨其在高

weixin_29657209的博客 350

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

unique_sir的博客 1万+

分布式事物解决方案之tcc,二阶段提交,三阶段提交原理案例解析

分布式事务 数据库事务要满足几个要求:ACID Atomic(原子性) 事务必须是原子的工作单元 Consistent(一致性) 事务完成时,必须使所有数据都保持一致状态 Isolation(隔离性) 并发事务所做的修改必须和其他事务所做的修改是隔离的 Duration(持久性) 事务完成之后,对系统的影响是永久性的 Mysql里的事务处理过程 记录redo(记录数据修改之前原...

黄金时代的架构之路 5367

多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码

本文将为大家介绍基于BP、ELM、LSTM、BiLSTM和SAELSTM多种算法的数据预测,并提供相应的Matlab源码。SAELSTM算法是一种结合自动编码器和LSTM神经网络的深度学习方法,用于时间序列数据预测。ELM算法是一种单层前向神经网络,在单次训练过程中直接产生输出权重,从而具有快速学习和良好推广性能。多算法数据预测——BP、ELM、LSTM、BiLSTM和SAELSTM,附Matlab源码。总体来看,采用多种算法进行数据预测可以提高预测准确率,并可根据不同场景选择适合的算法。

qq_39605374的博客 862

分布式事务相关 - 二阶段提交、三阶段提交、TCC、CAP、ACID、BASE

1. 前言 最近在看分布式事务,于是网上搜索相关资料,霎时间,对方给我扔来了一大堆概念,什么二阶段提交、三阶段提交、TCC补偿机制、CAP理论、ACID、BASE等等等,它们被零散地分散到各种各样的文章里。这里我根据自己所学习到的,以及所理解的方式,将这些概念放到一起谈一谈,一方面做个记录,一方面也希望可以帮助像鄙人一样的新手将这些概念有机地串连起来 2. 正片开始 话不多说,不再说那么多关于单机系统到分布式系统的介绍了,在分布式系统的设计中,有位大佬提出了CAP理论,根据CAP,也延伸出了ACID、BAS

超级小粿的空间 2964

【OpenClaw从入门到精通】第09篇:企业级实践——将OpenClaw接入钉钉,打造7×24小时数字员工(2026实测版)

本文聚焦OpenClaw的企业级落地实践,以“招聘数字专员”为核心场景,完整演示从钉钉接入到全流程自动化的实现路径。内容涵盖企业级部署架构设计、前置环境搭建、核心技能开发、流程串联、安全权限管控及运维监控六大模块,详解简历解析、岗位匹配、外呼集成、CRM同步、日历提醒等关键技能的构建逻辑与代码实现。借鉴中关村科金、网易智企的企业级实践经验,重点突破企业知识融合、安全权限管控、业务系统连接三大核心门槛,提供可直接参考的配置示例与操作步骤。所有技术方案均基于公开文档与实测验证,兼顾新手入门与进阶实操。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1170

【PPS便携式移动电源】如何透彻了解便携式移动电源,仅需要十分钟阅读即可

PPS 便携式储能电源的发展前景广阔,受益于户外经济爆发、应急备灾需求提升及 “双碳” 政策支持,全球市场规模预计持续增长,2025 年出货量将达 2380 万台,未来将向大功率大容量、光充一体化、智能化方向发展,还会拓展家庭储能、移动医疗等新场景,同时钠离子电池应用、双向逆变技术升级将进一步推动行业发展。

昔时扬尘处 272

什么是TCC?什么是二阶段提交?三阶段提交?

通过协调者(Coordinator)分两个阶段协调所有参与者(Participants)的事务操作,保证所有节点要么全部提交,要么全部回滚。三阶段提交(3PC)**是解决分布式事务一致性的核心协议。它们的核心目标是协调多个参与节点的事务操作,确保数据最终一致性。,并引入超时机制,降低阻塞风险。、**二阶段提交(2PC)在 2PC 的基础上增加。

大户影视的博客 1481

一文读懂5G网络整体架构(接入网+承载网+核心网)

接入网重构分级(分工更细、效率更高)、承载网三段化升级(管道更宽、更智能)、核心网服务化云化(管理更灵活、成本更低)最终实现“成本最优、资源灵活、场景适配”,才能支撑自动驾驶、工业互联网、智慧城市、VR/AR等各种新场景,真正走进我们的生活。

鲸落寰宇 429

mysql2阶段提交具体实现_分布式事务——两阶段提交、三阶段提交和TCC框架

分布式事务想聊聊分布式事务。看了网上的一些说法,仔细思考之后感觉都不大统一,有些就是不对。本文加入了一些自己的思考,讨论了一些实现中的细节,如果不对欢迎指正。先说说两阶段和三阶段提交吧。两阶段提交我这里说的两阶段提交,区别于网络上某些文章里提到的显然不实用的两阶段实现,是考虑到超时、异常恢复的两阶段提交。前提各系统的所有操作应当保证幂等。流程具体的流程图不再画(网上随便搜搜就有),简单描述一下就是...

weixin_39622289的博客 447

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

分布式系统一致性(ACID、CAP、BASE、二段提交、三段提交、TCC、幂等性)原理详解

本文内容属于分布式事物处理范畴,强调强一致性与区块链倡导的共识一致性略有不同,主要是最近以太坊ico导致交易拥堵问题引起我的思考,是不是有可能利用已有的解决方案进行演变增加每个节点的提交时的一致性,简单来讲就是在p2p网络中实现部分强一致性,提升区块链交易性能,文中TCC就是一种演变思路,很受启发,希望有高人给予这方面的指点;本文是我寻找资料时发现的一篇不错的文章,当做扩展思路也是不错的。 国际开...

qq_40046779的博客 3169

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

解密分布式事务:CAP理论、BASE理论、两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)、MQ事务消息、最大努力通知

如果发送消息成功,但是本地事务执行失败,那么订单记录就会丢失,而如果本地事务执行成功,但是消息发送失败,MQ中也没有对应的订单记录。资源管理器提供访问事务资源的方法,事务管理器协调参与全局事务的各个事务,并与参与全局事务的所有资源管理器进行通信,应用程序定义事务的边界,指定全局事务中的操作。例如,你的客户A在网站上查询自己快递的状态,此时客户A的请求被分配到了一个从节点上处理,但是这个从节点上存储的快递信息还没有更新,因此客户A看到的信息可能不是最新的,这就是数据的最终一致性。

我是Java程序员廖志伟,感谢朋友们的支持! 408

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

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

猿创征文|分布式事务常见解决方案

TCC模型对业务的侵入性较强,改造的难度较大,每个操作都需要有 try 、 confirm 、 cancel 三个接。分支事务的Cancel操作,若try操作全部成功,TM将会发起所有分支事务的Confirm操作,其中。3、本地消息表:基于本地数据库+mq,维护本地状态(进行中),通过mq调用服务,完成后响应一条消。TM首先发起所有的分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有。引入了超时机制解决参与者阻塞的问题,超时后本地提交,2pc只有协调者有超时机制。...

浅羽技术 765

分布式事务解决方案

目录 1.本地事务 2.分布式事务场景 1. 跨库事务 2. 分库分表 3.服务化 3.两阶段提交 & 三阶段提交 & paxos CAP + BASE 4. 典型的柔性事务方案 5. 场景的分布式事务解决方案 1. 基于XA协议的两阶段提交 2. 消息事务 + 最终一致性 3. TCC 编程 6. 柔性事务:最大努力通知 7. T...

followMyInclinations的专栏 4619

来了!大话分布式:分布式事务(CAP、两阶段提交、三阶段提交)

我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起。明显的弊端就是不易扩展、发布冗重、服务治理不好做。所以我们把整个系统拆分成若干个具备独立运行能力的计算机服务的集合,而从用户的角度看,是一个完整的系统,但实际上,它是一个分布式服务的集合。分布式系统主要从以下几个方面进行裂变:应用可以从业务领域拆分成多个module,每个module还可以再按项目结构分成接口层、业务层、数据访问层;当然也可以按访问入口进行拆分,如移动、桌面、Web端访问的是不同的类型接口服务;...

m0_73311735的博客 338

分布式事务(两阶段提交、三阶段提交)

假如没有分布式事务 在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子: 上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调用库存服务,进行扣除库存,再调用订单服务,创建订单记录。 正常情况下,两个数据库各自更新成功,两边数据维持着一致性。 但...

qq_35240226的博客 4794

两阶段提交与三阶段提交:分布式事务核心协议详解

在分布式系统设计中,跨节点数据一致性是永恒的核心挑战。当业务拆分后,传统的本地事务无法保证多个独立数据库间的原子性,此时分布式事务协议成为关键。两阶段提交(2PC)作为最经典的协议,通过协调者与参与者的两轮交互,实现全有或全无的提交语义,但其同步阻塞、协调者单点等问题在工程实践中常引发性能瓶颈。三阶段提交(3PC)引入超时机制与预检阶段,试图缓解阻塞,却增加了复杂性与新的不一致风险。理解这些协议的原理与优劣,有助于在数据库、微服务、消息队列等场景中做出合理选型。本文从基础概念出发,剖析2PC与3PC的流程、

weixin_30843121的博客 235

分布式事务

一、分布式事务 事务是程序执行的逻辑单元,一组操作要么全部成功,要么全部失败 分布式环境下,对系统进行划分,比如电商项目,会将系统拆分成不同的服务,比如订单服务,积分服务,库存服务,寻源服务等等。 订单生成流程: 修改支付状态为已支付 调用积分服务扣减使用的积分 调用库存服务扣减库存 调用仓储系统生成物流信息 订单生成流程中如果任一步骤失败,由于在该服务之前其它服务已经完成,就会造成数据不一致...

LJJZJ的博客 229

各种形态的分布式事务:2PC,TCC以及基于消息的最终一致性

分布式事务是为了解决微服务架构(形式都是分布式系统)中不同节点之间的数据一致性问题。这个一致性问题本质上解决的也是传统事务需要解决的问题,即一个请求在多个微服务调用链中,所有服务的数据处理要么全部成功,要么全部回滚。当然分布式事务问题的形式可能与传统事务会有比较大的差异,但是问题本质是一致的,都是要求解决数据的一致性问题。 而分布式事务的实现方式有很多种,最具有代表性的是由Oracle Tuxed...

Cgy25的博客 798

【分布式】怎么保证一致性

说到一致性就不能不提事务,事务这个词现在经常用于数据库,但是有一点要注意,站在一定的角度,事务并非只适用于数据库。

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 4225

什么是2PC 3PC TCC?

2PC(两阶段提交) 阶段1 在阶段1中,协调者发起一个提议,分别问询各参与者发送事务预处理请求(可不可以执行任务) 阶段2 在阶段2中,协调者根据参与者的反馈,提交或中止事务,如果参与者全部同意则提交,只要有一个参与者不同意就中止。 缺点 同步阻塞问题。执行过程中,所有参与节点都是事务阻塞型的。当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态。 单点故障。由于协调者的重要...

qq_16047373的博客 249

一文搞懂后端面试之数据库分布式事务【中间件 | 数据库 | MySQL | ACID】

重点:两阶段提交协议、三阶段提交协议和XA协议的基本步骤跨服务的分布式事务:TCC、SAGA、AT容错基本就是重试监控+告警+人工介入处理读数据+数据修复监控+告警+故障自动处理单纯的分库分表跨表事务,可以考虑延迟事务。

LightOfNight的博客 1322
上一篇: 统一认证中心-auth2.0
下一篇: MySql事务隔离级别和Spring传播机制
普通网友
博客等级 码龄12年 12粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值