Seata 使用
Seata-Server安装配置
seata-server为seata中的事务协调器。
注意:只能在jdk8及以上环境运行
下载Seata-Server
nacos配置
nacos 安装
nacos配置
添加命名空间
在命名空间配置项添加 seata的配置
配置Seata-Server
配置file.conf
解压seata-server安装包到指定目录,修改conf
目录下的file.conf
配置文件,主要修改事务日志存储模式为db
及数据库连接信息;
1 | ## transaction log store, only used in seata-server |
配置registry.conf
修改
conf
目录下的registry.conf
配置文件,主要修改seata-server注册中心配置以及配置中心配置,这里选择nacos作为注册中心以及配置中心,注意z配置nacos的命名空间为seata命名空间的id
1 | registry { |
配置Seata-Server环境
查看文档
打开
conf
目录下的README-zh.md
文档
导入Seata-Server数据库
打开server脚本 下的
db
文件夹,根据不同的数据库选择不同的数据库脚本
以下是具体mysql脚本内容
1 | -- -------------------------------- The script used when storeMode is 'db' -------------------------------- |
因为本地环境是使用mysql,下载mysql.sql,创建seata的数据库,将mysql.sql导入到seata数据库
导入nacos配置
下载文件
打开config-center 脚本 ,下载config.txt 以及nacos目录
修改config.txt
注意 加注释的是需要注意的地址,如果有不同的地址需要修改
1 | transport.type=TCP |
导入配置
将下载的文件保存成如下的结构,执行nacos目录中的
nacos-config.sh
进入nacos目录使用给git bash执行导入命令
执行如下命令进行导入操作
-h 指定nacos的地址
-p 指定nacos的端口号
-t 指定刚刚在nacos创建的seata的命名空间ID
1 | sh nacos-config.sh -h 52.82.98.209 -p 9105 -t dfcf36cb-00fa-4dd5-a488-6ccb7b97e0a3 |
如果出现以上命令表示导入成功,可以打开nacos进行查看
启动Seata-server
到Seata-server的bin目录执行
seata-server.bat
命令脚本
执行后,如果出现如下界面表示启动成功
AT模式配置
seata默认就是at模式直接配置就可以
环境配置
导入undo_log表
以下是具体mysql脚本内容
1 | -- for AT mode you must to init this sql for you business database. the seata server not need it. |
导入pom文件
因为我们的seata-server是使用的1.4.0 所以客户端也需要导入1.4.0,在需要用到seata的客户端(TM,RM)都需要导入
1 | <!--seata 的启动器 需要导入对应的版本 --> |
TM 配置
TM是事务管理器,就是开启分布式事务的客户端需要做如下操作,TM可以不包含数据源
- 在TM启动类添加
@EnableTransactionManagement
- 在事务的开启方法加上
@GlobalTransactional
注解
目录结构
配置application配置文件
需要配置application.yml配置文件
1 | seata: |
启动类配置
注意只要在启动类配置上
@EnableTransactionManagement
即可
1 |
|
开启事务
需要在开启事务的方法上面加上
@GlobalTransactional
注解
1 |
|
RM 配置
RM是负责提交和回滚事务的,开启RM只需要如下配置
- 配置application配置文件
- 在需要提交事务的方法上面加入
@Transactional
注解
目录结构
配置application配置文件
需要配置application.yml配置文件
1 | seata: |
开启事务
在需要提交事务的方法上加入
@Transactional
注解
1 |
|