seata分布式事务(四)Springboot集成seata分布式事务

上一篇内容:seata分布式事务(三)安装seata服务器

本文主要演示以刚开始创建的项目为例,集成Seata进行分布式事务处理。

完整代码示例:https://gitee.com/zhaojiyuan/seatademo

給Pa和Pb项目集成seata分布式事务框架

  1. 给Pa和pb模块都添加seata以下的依赖

    <dependency>
     <groupId>io.seata</groupId>
     <artifactId>seata-spring-boot-starter</artifactId>
     <version>1.4.1</version>
    </dependency>
    <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
     <version>2.2.1.RELEASE</version>
     <exclusions>
         <exclusion>
             <groupId>io.seata</groupId>
             <artifactId>seata-spring-boot-starter</artifactId>
         </exclusion>
     </exclusions>
    </dependency>
    
  2. 创建undo_log表

    从源码包中找到seata-1.4.1\script\client\at\db文件夹,根据自己数据库类型选择要执行的文件,创建undo_log表。

    源码包下载地址:Source code(zip)

  3. 在配置文件中添加以下配置,带有注释的需要根据自己的情况修改

    seata:
      enabled: true
      application-id: applicationName
      tx-service-group: my_test_tx_group
      enable-auto-data-source-proxy: true
      data-source-proxy-mode: AT
      service:
        vgroup-mapping:
          my_test_tx_group: default
        grouplist:
          default: 192.168.0.199:8091 #seata服务器对应的ip以及端口
        enable-degrade: false
        disable-global-transaction: false
      registry:
        type: nacos
        nacos:
          application: seata-server
          server-addr: www.zhaojiyuan.com:8848 #nacos的ip或者域名以及端口
          group : SEATA_GROUP
          namespace: 7a4cb2ba-9f0d-4add-b953-76c4572b9144 #自己创建seata_dev的命名空间ID
          username: zhaojiyuan #nacos用户名
          password: y21... #nacos密码
      config:
        type: nacos
        nacos:
          server-addr: www.zhaojiyuan.com:8848 #nacos的ip或者域名以及端口
          group: SEATA_GROUP
          namespace: 7a4cb2ba-9f0d-4add-b953-76c4572b9144 #自己创建seata_dev的命名空间ID
          username: zhaojiyuan #nacos用户名
          password: y21... #nacos密码
    
  4. 添加注解

    在需要添加全局事务的service方法上添加@GlobalTransactional注解
    在这里插入图片描述

至此,seata分布式服务的hello word已全局结束,然后测试是否可以试用

测试

测试抛异常是否可以全部回滚

  1. 再paTest方法中手动抛出一样,数据全部回滚,测试通过

    修改代码 在这里插入图片描述

    前台调用的日志
    在这里插入图片描述

    查看数据库,一条数据都没有 在这里插入图片描述

测试不发生异常时候数据全部提交

  1. 测试当代码没有异常时候,数据是否可以正常提交

    修改代码
    在这里插入图片描述

    前台调用 在这里插入图片描述

    查看数据库,两条数据都已插入到数据库 在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值