下载seata资源 设置server端
查找springcloud和seata的对应版本
查看对应的版本关系的网址:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
下载seata 以及对应的资源
seata下载地址: Releases · seata/seata · GitHub
seata 官网文档: Seata 是什么
对应资源下载地址(选择对应的资源路径进行下载): Releases · seata/seata (github.com)
配置seata需要的数据库
seata 存储模式分为三种
· file: (默认) 单击模式, 全局事务会话信息在内存中读写并持久化本地文件 root.data,性能较高(默认)
· db: (mysql版本需要在 5.7+) 高可用模式, 全局事务会话信息通过db共享,相应性能差些。
在下载好的资源中有seata需要的数据库的sql语句 地址如下: script\server\db
这里使用mysql 在数据库中运行mysql.sql导入seata需要的数据库
修改seata中的配置文件 : seata\conf\file.conf
修改内容如下:
· db存储模式 + Naocs (注册&配置中心)部署
配置Nacos注册中心 负责事务参与者(微服务) 和TC通信
修改对应的配置文件 seata\conf\registry.conf
注意:如果配置了seata server使用nacos作为配置中心,则配置信息会从nacos读取,file.conf可以不用配置。 客户端配置registry.conf
使用nacos时也要注意group要和seata server中的group一致,默认group是"DEFAULT_GROUP"
将配置中心所需要用到的配置注册到nacos中
修改下方的配置文件 配置文件的路径如下: script\config-center\config.txt
配置事务分组, 要与客户端配置的事务分组一致
#my_test_tx_group需要与客户端保持一致 default需要跟客户端和registry.conf中registry中的cluster保持一致
(客户端properties配置:spring.cloud.alibaba.seata.tx‐service‐group=my_test_tx_group)
事务分组: 异地机房停电容错机制
my_test_tx_group 可以自定义 比如:(guangzhou、shanghai...) , 对应的client也要去设置
seata.service.vgroup‐mapping.projectA=guangzhou
default 必须要等于 registry.confi cluster = "default"
将修改好的配置文件注册到nacos中 通过git命令来使用 脚本位置: script\config-center\nacos
在这个路径下右键选择git bash Here
在弹出的命令框中执行一下命令:sh nacos-config.sh -h xxx.xxx.xxx.xxx -p 8848
参数说明
-h: host,默认值 localhost
-p: port,默认值 8848
-g: 配置分组,默认值为 'SEATA_GROUP'
-t: 租户信息,对应 Nacos 的命名空间ID字段, 默认值为空 ''
启动seata
seata的启动方式 在对应路径下双击一下内容
双击 seata-server.bat 启动seata 默认端口号 8091
配置seata client
2.1 在涉及到事务的数据库中运行一下sql语句
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;
2.2 在涉及到事务的服务中添加一下配置
spring:
cloud:
alibaba:
seata:
tx-service-group: default_tx_group # 配置事务分组
# seata 相关配置
seata:
registry:
# 配置seata的注册中心, 告诉seata client 怎么去访问 seata server
type: nacos
nacos:
server-addr: 124.223.48.35:8848 #nacos地址
application: seata-server # seata注册名称
username: nacos # nacos 用户名
password: nacos # nacos 密码
group: SEATA_GROUP # naocs 分组名称
config:
type: nacos
nacos:
server-addr: 124.223.48.35:8848
username: nacos
password: nacos
application: seata-server # seata注册名称
group: SEATA_GROUP # naocs 分组名称
2.3 在要使用的方法上添加 @GlobalTransactional 注解
大功告成!!!! 完结撒花