undo_log(回滚日志表)表, 每个数据库需要创建注意:UNDO_LOG Table:不同数据库在类型上会略有差别。详见官网
-- 注意此处0.7.0+ 增加字段 context
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 AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Linux/Mac 服务器安装
- /seata-server.sh 启动,默认是8091端口(记得防火墙开放端口,也可以守护进程启动)TC需要存储全局事务和分支事务的记录,支持三种存储模式
file模式 (默认):性能高, 适合单机模式,在内存中读写,并持久化到本地文件中
bin/sessionStore/root.data文件
db模式 :性能较差,适合tc集群模式
redis模式:性能较高,适合tc集群模式
解决: 下载下来的seata 默认没有存放日志文件的目录, 手动创建seata/logs/seata_gc.log 目录和文件
出现的问题:no available service 'null' found, please make sure registry config correct
安装的服务端版本必须要和你客户端的版本保持一样
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-seataartifactId>
dependency>
seata-spring-boot-starter 版本 与 部署的TC服务端版本一致)
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-seataartifactId>
<exclusions>
<exclusion>
<groupId>io.seatagroupId>
<artifactId>seata-spring-boot-starterartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>io.seatagroupId>
<artifactId>seata-spring-boot-starterartifactId>
<version>1.5.1version>
dependency>
#seata配置
seata:
tx-service-group: ${spring.application.name}-group
service:
grouplist:
testdemo: 127.0.0.1:8091
vgroup-mapping:
testdemo-user-service-group: testdemo

在开始业务方法上添加 @GlobalTransactional 注解
