分布式事务

分布式事务概念:

分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,且属于不同的应用,分布式事务要保证这些操作要么全部成功,要么全部失败。本质上说,分布式事务就是为了保证,不同数据库的数据一致性。

分布式事务解决方案

2PC

2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段

这里举一个不恰当的例子,如你和相亲对象一起出库吃饭且AA

准备阶段: 老板要求男方付款,男方付款。老板要求女方付款,女方付款

提交阶段: 老板出餐,两人纷纷落座。

回滚:如果女方拒绝付款,老板就不会出餐,并且把已收取的钱原路返回。

整个事务过程是由事务管理器和参与者组成的,店老板就是事务管理器,男女双方就是事务的参与者,事务管理器抉择整个分布式事务在计算机中关系数据库支持的两阶段提交协议

正式解释:

准备阶段:事务管理器给每个参与者发送Prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo 日志,此时事务没有提交。

Undo log 是记录修改之前的数据,用于数据库回滚,Redo log记录修改后的数据,用于记录 提交事务后写入数据的文件

提交阶段:如果事务管理器收到了参与者的执行失败或者超时消息,直接给每个参与者发送回滚消息;否则发送提交消息,参与者根据事务管理器指令进行提交或者回滚操作,并释放事务处理过程中使用的资源。

成功:

失败:

下单与减库存举例

全局事务:

Netty 实现事务管理器:

Order 和 Stock 的groupid 一致

新增了两个全局事务:

利用切面切 @ZhouyuGlobalTransactional 注解:创建全局事务,注册分支事务

seata

官网: https://seata.apache.org/

代码:

posted @   chuangzhou  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示