🌭8. 分布式事务Seata保证审批状态一致性
选中新版正文中的对应文字,然后点“定位到这里”。
- 本地事务解决的是单数据源的数据一致性问题,分布式事务解决的是多数据源数据一致性问题。
- 在单体应用中的事务其实都属于本地事务,比如在 springboot 中在方法上加 @Transactional 注解,其实走的也是一种本地事务。

- 有了 Seata,我们只需要在需要使用分布式事务的地方加上 @GlobalTransactional 注解即可。
- Seata 支持 3 种模式,AT 模式、TCC 模式、Saga 模式
| 模式 | 描述 | 优点 | 缺点 | 适用场景 |
| AT模式 | 自动补偿事务, 通过代理自动管理事务的提交回滚, 适合简单场景 | 易于使用, 开发成本低, 自动管理事务 | 依赖于数据库支持, 适合简单场景, 不适合复杂业务逻辑 | 简单的业务场景, 如单表操作, 小型微服务 |
| TCC模式 | 开发者手动实现业务逻辑的Try/Confirm/Cancel三个阶段 | 提供强一致性, 适用于需要严格事务的场景 | 实现复杂, 开发成本高, 需要手动管理事务的各个阶段 | 对一致性要求高且业务操作较短的场景, 如支付, 交易等涉及资金的系统 |
| Saga模式 | 长事务模式, 通过一些列的子事务来完成主事务, 子事务之间独立运行,如果某个子事务失败, 通过补偿事务进行回滚 | 无需全局锁, 高性能, 适用于长事务场景 | 需要开发补偿逻辑, 可能无法保证强一致性 | 业务流程长, 跨多个系统或服务的场景, 如订单管理, 供应链管理 |
1. 下载安装Seata

2. 创建对应数据库
- seata使用mysql作为db高可用数据库,在mysql创建一个 pmhub-seata库,并导入数据库脚本。
CREATE DATABASE `pmhub-seata` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
USE `pmhub-seata`;
-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(
`xid` VARCHAR(128) NOT NULL,
`transaction_id` BIGINT,
`status` TINYINT NOT NULL,
`application_id` VARCHAR(32),
`transaction_service_group` VARCHAR(32),
`transaction_name` VARCHAR(128),
`timeout` INT,
`begin_time` BIGINT,
`application_data` VARCHAR(2000),
`gmt_create` DATETIME,
`gmt_modified` DATETIME,
PRIMARY KEY (`xid`),
KEY `idx_status_gmt_modified` (`status` , `gmt_modified`),
KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(
`branch_id` BIGINT NOT NULL,
`xid` VARCHAR(128) NOT NULL,
`transaction_id` BIGINT,
`resource_group_id` VARCHAR(32),
`resource_id` VARCHAR(256),
`branch_type` VARCHAR(8),
`status` TINYINT,
`client_id` VARCHAR(64),
`application_data` VARCHAR(2000...未能定位到原文的划线
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复