SpringBoot 2.3.0集成 seata1.2 分布式事务
1. 环境
1:maven 3.6.1
2:springboot 2.3.0
3:nacos 1.3.0
seata 1.2.0
4:jdk 1.8
5:mysql 5.7
2. 帮助链接
视频教程链接 seata1.2.0
官方文档地址 文档地址
教程文档地址 教程文档地址
3. 环境准备
- 启动nacos
- 启动数据库
- 启动两个微服务,通过feign调用,测试事务的回滚
4. 开始
官方文档中的 目录资源介绍 点进去
1. 在client目录里面有 at模式 和saga模式的数据库表结构 需要导入到自己需要整合的微服务连接的数据库中(本文选择的是at模式)
2. 在spring 目录下有配置文件也是需要引入到整合的微服务项目中,默认配置比较繁琐 根据前面的视频教程中的介绍 可以进行精简
seata:
enabled: true #默认配置
application-id: applicationname #服务名
tx-service-group: my_test_tx_group #默认配置
enable-auto-data-source-proxy: true #默认配置
config:
type: nacos
nacos:
serverAddr: 127.0.0.1:8848 #nacos服务地址
group: SEATA_GROUP
userName: "nacos"
password: "nacos"
registry:
type: nacos
nacos:
application: applicationname #服务名
server-addr: 127.0.0.1:8848 #nacos配置中心服务地址
userName: "nacos"
password: "nacos"
3.在pom中需要引入 seata1.2.0的依赖包
<!-- 阿里巴巴 seata分布式事务配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-seata</artifactId>
<version>2.2.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
4.在事务发起者的方法上加上 @GlobalTransactional 直接
客户端配置已经完成
启动seata-serve 服务端
1 下载seata 1.2 的源码 (csdn有资源)
在 script/config-center 目录下面有一个 config.txt 文件 需要修改里面的配置
service.vgroupMapping.my_test_tx_group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
store.db.user=root
store.db.password=123456
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
修改里面的数据库源配置 这配置不支持mysql 8的版本 如果是mysql 8 需要自己查阅资料进行解决
2.进入nacos的目录 里面有 nacos-config.sh 脚本 一般情况无需改动
if [[ -z ${host} ]]; then
host=localhost
fi
if [[ -z ${port} ]]; then
port=8848
fi
if [[ -z ${group} ]]; then
group="SEATA_GROUP"
fi
if [[ -z ${tenant} ]]; then
tenant=""
fi
可以修改 nacos的地址 , 端口 , 组名 , 所属租户
3.修改完成之后 通过cmd 启动 nacos-config.sh 脚本
4.无报错的情况下 登录nacos 查看配置是否上传到nacos配置中心 , 上传上去了就无问题
5.下载 seata-serve (csdn有资源)
6.下载seata-serve之后 进入conf目录 修改 registry.conf 文件
registry {
type = "nacos"
nacos {
application = applicationname
serverAddr = "127.0.0.1"
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
type = "nacos"
nacos {
serverAddr = "127.0.0.1"
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
}
}
- 进入bin 目录 点击启动 seata-server.bat
- 查看是否成功注册到nacos
如果有报错或者不成功的地方 , 请自己思考是否配置出现问题 无法连接到数据库或者 无法正常注册到nacos
作者自己按照教程视频和参考文档 是一次就整合完成,相信大家也不会出现问题