1. Seata安装与配置
1.下载相关文件与源码: https://github.com/seata/seata/releases(记得源码也要下载,后续需要)
2.创建数据库表: 去源码文件夹里找到mysql.sql,用数据库可视化工具创建好表
3.修改配置文件file.conf: 修改mysql连接的配置信息,这个文件在conf目录下(不是源码)
dbType = "mysql"
driverClassName = "com.mysql.cj.jdbc.Driver"
## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
url = "jdbc:mysql://localhost:3306/seata?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false"
user = "root"
password = "123456"
4.前往nacos添加命名空间: 添加Seata命名空间,用来保存Seata相关的配置信息
5.修改配置文件register.conf: 将配置信息保存在nacos中,修改配置文件
6.将配置文件同步到nacos中: 前往源码找到config.txt文件,修改数据库连接信息,该文件在seata-1.4.2\script\config-center
7.将配置文件同步到nacos: 前往seata-1.4.2\script\config-center\nacos下,打开git控制台,使用命令将信息上传到nacos里
#这里的命名空间ID,分组等信息要改成自己的
sh nacos-config.sh -h 127.0.0.1 -p 8848 -g SEATA_GROUP -t 43fd994f-7ee4-47f4-bd16-28b39f603c6d -u nacos -w nacos
8.检查配置文件是否同步: 去nacos里看配置列表
9.启动Seata: 前往bin目录下,点击启动文件seata-server.bat
2 分布式事务测试
1.搭建相关测试项目: 本次测试主要搭建两个服务,一个模拟库存服务,一个模拟订单服务,库存服务主要是减少库存,而订单服务则是生成相对应的订单。主要模拟的是一个下单的操作,就是说:一个下单操作,应该是减少相对应的商品库存信息,另一个则是生成相对应的订单信息。
项目gitee地址: https://gitee.com/longjiamou/spring-cloud-alibaba.git
部分主要代码和配置:
pom依赖导入: 主要是导入seata,nacos,mybatis-plus等相关依赖
<!--导入seata依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
<exclusions>
<exclusion>
<groupId>seata-all</groupId>
<artifactId>io.seata</artifactId>
</exclusion>
<exclusion>
<groupId>io.seata</groupId>
<artifactId>se