SpringBoot 2.3.0集成 seata1.2 分布式事务

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. 环境准备

  1. 启动nacos
  2. 启动数据库
  3. 启动两个微服务,通过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的依赖包


        
            com.alibaba.cloud
            spring-cloud-alibaba-seata
            2.2.0.RELEASE
            
                
                    io.seata
                    seata-spring-boot-starter
                
            
        
        
            io.seata
            seata-spring-boot-starter
            1.2.0
        

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"
  }
}
  1. 进入bin 目录 点击启动 seata-server.bat
  2. 查看是否成功注册到nacos

如果有报错或者不成功的地方 , 请自己思考是否配置出现问题 无法连接到数据库或者 无法正常注册到nacos

作者自己按照教程视频和参考文档 是一次就整合完成,相信大家也不会出现问题

你可能感兴趣的:(分布式,事务,seata,分布式,java)