当前位置: 首页 > news >正文

TC、TM、RM如何协同解决分布式事务难题

在分布式系统架构中,事务管理一直是极具挑战性的技术难题。阿里巴巴开源的Seata框架通过其精妙的三组件架构——TC(Transaction Coordinator)、TM(Transaction Manager)和RM(Resource Manager),为分布式事务提供了优雅的解决方案。本文将深入剖析这三个核心组件的设计原理、协作机制及最佳实践。

一 Seata架构总览

三大组件的角色定位

组件全称角色类比核心职责
TCTransaction Coordinator事务协调者维护全局事务状态,协调分支事务的提交或回滚
TMTransaction Manager事务发起者定义事务边界,决定全局事务的最终状态(提交/回滚)
RMResource Manager资源管理者管理分支事务资源,向TC注册分支事务,并执行TC的提交或回滚指令

二 TC分布式事务的中枢神经系统

1. 核心架构设计

关键模块说明:
  • 事务日志存储:记录全局事务和分支事务状态(支持DB、File、Redis)

  • 锁管理器:维护全局行锁,防止脏写

  • 协调引擎:处理两阶段提交/回滚逻辑

三 TM-全局事务的指挥官

1. 工作流程解析

四 RM-分支事务的执行者

1. 数据源代理机制

@Configuration
public class DataSourceConfig {@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druidDataSource() {return new DruidDataSource();}@Primary@Bean("dataSource")public DataProxy dataSourceProxy(DataSource dataSource) {return new DataSourceProxy(dataSource);}
}

 2. undo_log表结构解析

CREATE TABLE `undo_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`branch_id` bigint(20) NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int(11) NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

字段说明

  • xid:全局事务ID

  • branch_id:分支事务ID

  • rollback_info:回滚所需的SQL和前后镜像数据

  • log_status:日志状态(0-正常,1-已回滚)

三组件协同工作全流程 

1. 正常提交场景

2. 异常回滚场景 

相关文章:

  • 深入理解 Cross-Entropy 损失函数:从原理到实践
  • 5.5 misc驱动框架
  • SIEMENS 标准程序解读 ---> Fanuc(法那科)机器手通讯交互程序
  • csp基础之进制转换器
  • `shallowReactive` 与 `shallowRef`:浅层响应式 API
  • RA4M2开发涂鸦模块CBU(3)----定时器GPT-PWM调光
  • 【软考高级系统架构论文】论企业集成平台的理解与应用
  • Springfox使用详解
  • CPU Cache 的映射与寻址
  • Vue+spring boot前后端分离项目搭建---小白入门
  • Qt + C++ 入门2(界面的知识点)
  • UML:状态图介绍与绘制
  • 【FineDance】舞蹈多样性的得来
  • 通过 Lambda + API Gateway + 外部 API 实现。
  • 在 MyBatis 的xml中,什么时候大于号和小于号可以不用转义
  • 使用Node.js开发服务端接口
  • quartz 表达式最近10次执行时间接口编写
  • 【设计模式】3.装饰模式
  • leetcode332.重新安排行程:优先队列与DFS实现欧拉路径的行程规划
  • AIGC工具平台-SadTalker音频对口型数字人
  • wordpress文章输出数/百度seo排名优化教程
  • 日照园林建设发展有限公司网站/查看别人网站的访问量
  • html做网站首页/视频外链平台
  • 杂志网站建设/百度网站域名注册
  • 网站搭建网站/高级搜索引擎技巧
  • 大连网站建设怎么样/太原网站制作优化seo公司