当前位置:网站首页>Seata两阶段提交AT详解
Seata两阶段提交AT详解
2022-07-26 04:57:00 【知识浅谈】
Seata两阶段提交
和传统2PC的模型类似,Seata定义了3个组件来协调分布式事务的处理过程
- Transaction Coordinator(TC):事务协调器,它是独立的中间件,需要独立部署运行,它维护全局事务的运行状态,接收TM指令发起的提交与回滚,负责与RM通信协调各各分支事务的提交或回滚。
- Transaction Manager(TM):事务管理器,TM需要嵌入和应用程序中工作,它负责开启一个全局事务,并最终向TC发起全局提交或全局回滚的指令。
- Resource Manager(RM):控制分支事务,负责分支注册,状态汇报,并接收事务协调器TC的指令,驱动分支(本地)事务的提交和回滚。
两阶段提交协议的演变:
一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:
提交异步化,非常快速地完成。
回滚通过一阶段的回滚日志进行反向补偿
新用户注册送积分列举Seata的分布式事务过程:

具体的执行流程如下:
1.用户服务的TM向TC申请开启一个全局事务,全局事务创建成功生成一个全局唯一的XID。
2.用户服务的RM向TC注册 分支事务,该分支事务在用户服务执行新增用户逻辑,并将其纳入XID对应全局事务的管辖。
3.用户服务执行分支事务,向用户表插入一条记录。
4.逻辑执行到远程调用积分服务时(XID在微服务调用链路的上下文中传播)。积分服务的RM向TC注册分支事务,该分支事务执行增加积分的逻辑,并将其纳入XID对应全局事务的管辖。
5.积分服务执行分支事务,向积分记录表插入一条记录,执行完毕后,返回用户服务。
6.用户服务分支事务执行完毕。
7.TM向TC发起针对XID的全局提交或回滚决议。
8.TC调度XID下管辖的全部分支事务完成提交或回滚事务请求。
Seata实现2PC与传统2PC的差别
- 架构层次方面,传统2PC方案的RM实际上是在数据库层,RM本质上就是数据库自身,通过XA协议实现,而Seata的RM是以jar包的形式作为中间件层部署在应用程序这一侧的。
- 两阶段提交方面,传统2PC无论第二阶段的决议是commit还是rollback,事务性资源的锁都要保持到Phase2完成才释放。而Seata的做法是在Phase1就将本地事务提交,这样可以省去Phase2持锁的时间,整体提高效率。
边栏推荐
- SQL加解密注入详解
- 奥特学园ROS笔记--6
- 5、 Domain objects share data
- [cloud native | 17] four network modes of container
- columns in GROUP BY clause; this is incompatible with sql_ mode=only_ full_ group_ By mysql8.0 solution
- Vector explanation and iterator failure
- Swiftui one day crash
- AXI协议(5):AXI协议的burst机制
- Customer service relationship management based on SQL net enterprise messenger enterprise communications
- 3、 @requestmapping annotation
猜你喜欢

AXI协议(5):AXI协议的burst机制

Embedded practice -- CPU utilization statistics based on rt1170 FreeRTOS (24)

数组排序2

Face database collection summary

这种是我的vs没连上数据库吗

科技论文翻译,俄语文档的语法有何特点

常函数const的学习

Tonight! Stonedb is officially open source. Please check this strategy~

Kubernetes 进阶训练营 调度器

SQL encryption and decryption injection details
随机推荐
批量将PPM格式图片转化为JPG格式
5、 Domain objects share data
minipcie接口CAN卡解决工控机扩展CAN通道的难题 minipcie CAN
2022 a.static query on tree (tree section)
IEC61131 数据类型与 C#数据类型的对应
有ggjj看看这个问题没,是否缓存导致跨域问题?
创建MySQL数据库的两种方式
数据库启动报:ORA-29702: error occurred in Cluster Group Service
What are the well-known to-do apps at home and abroad
What is the real HTAP? (1) Background article
Weights & biases (II)
7、 Restful
Principle of image nonlocal mean filtering
十一、异常处理器
Calculate the curvature of discrete points (matlab)
10、 Interceptor
Autocomplete prevents the form from automatically filling in
Authentication Encyclopedia (cookies, sessions, tokens, JWT, single sign on), in-depth understanding and understanding of authentication
mongoDB为什么快
2022河南萌新联赛第(三)场:河南大学 B - 逆序对计数