初识Seata
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 为提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案,这四种模式的具体解释可以查看官方文档
下载地址:https://github.com/seata/seata/releases/download
官方文档:http://seata.io/zh-cn/docs/user/quickstart.html
Seata基本使用
一、检查环境
因为之后的设置可能要配置注册中心和配置中心,所以如果需要用到要提前准备好,我这里的注册中心用的Nocos,配置中心用的file.conf
二、引入依赖
这里注意版本问题
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-seata</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
<version>1.2.0</version>
</dependency>
三、YML配置文件
seata.enabled属于1.0新特性,可以不用引入file.conf 和 registry.conf,但我这里使用的是引入文件的方式
# 其他配置项省略
spring:
# db相关配置
datasource:
# 是否开启seata事务
seata: true
alibaba:
# 分布式事务
seata:
# 激活自动配置,使得我们可以在yaml/properties文件中配置
enabled: true
# enable-auto-data-source-proxy: true
# 事务分组名
tx-service-group: my_test_tx_group
四、创建undo_log表
SEATA AT模式需要undo_log表,所以在你自己的数据库中创建该表保证事务正常运行
-- mysql 建表语句
CREATE TABLE IF NOT EXISTS `undo_log`
(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'increment id',
`branch_id` BIGINT(20) NOT NULL COMMENT 'branch transaction id',
`xid` VARCHAR(100) NOT NULL COMMENT 'global transaction id'</