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. 测试当代码没有异常时候,数据是否可以正常提交

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

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值