• springcloud整合seata


    好久没整活了,确实没时间,也没学习啊。简单记录一下springcloud中如何使用seata实现分布式事务。
    seata下载地址:https://github.com/seata/seata/releases/tag/v1.4.2
    在这里插入图片描述
    开始进行准备配置工作。
    nacos命名空间名为seata 命名空间ID为seata_namespace_001的,然后保存即可
    在这里插入图片描述
    seata解压后,去到seata/seata-server-1.4.2/conf目录,修改registry.conf文件,其他的没用我给删除了,这里填写nacos配置信息,命名空间填写“seata_namespace_001”
    在这里插入图片描述
    然后修改file.conf文件,这里主要填写seata链接的数据库信息
    在这里插入图片描述
    然后找到刚才下载的seata源码里面的config.txt,将该文件复制到seata的根目录下面
    在这里插入图片描述
    在这里插入图片描述
    主要修改点如下
    在这里插入图片描述

    在下载的Seata源码的seata-1.4.2/script/config-center/nacos目录下找到nacos-config.sh文件
    在这里插入图片描述
    复制到seata根目录下
    在这里插入图片描述
    鼠标右键,执行git bash命令

    sh nacos-config.sh -h 127.0.0.1 -p 8848 -g SEATA_GROUP -t seata_namespace_001 -u nacos -w nacos
    
    • 1

    执行成功后如下,nacos里面可以显示这些信息在这里插入图片描述
    数据库里面创建数据库,数据库脚本seata-1.4.2/script/server/db目录
    在这里插入图片描述
    启动seata服务:seata-server.bat -p 8091 -h 127.0.0.1 -m db
    项目整合seata,要整合的服务数据库里面创建该表信息

    CREATE TABLE IF NOT EXISTS `undo_log`
    (
        `branch_id`     BIGINT       NOT NULL COMMENT 'branch transaction id',
        `xid`           VARCHAR(128) NOT NULL COMMENT 'global transaction id',
        `context`       VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
        `rollback_info` LONGBLOB     NOT NULL COMMENT 'rollback info',
        `log_status`    INT(11)      NOT NULL COMMENT '0:normal status,1:defense status',
        `log_created`   DATETIME(6)  NOT NULL COMMENT 'create datetime',
        `log_modified`  DATETIME(6)  NOT NULL COMMENT 'modify datetime',
        UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
    ) ENGINE = InnoDB
      AUTO_INCREMENT = 1
      DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    服务里面都添加该依赖

    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-seata
    
    
    • 1
    • 2
    • 3
    • 4

    我这里有个user服务,point服务
    user服务配置文件新增

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
        alibaba:
          seata:
            tx-service-group: server-user-tx_group
    seata:
      application-id: user
      service:
        vgroup-mapping:
          server-product-tx_group: default
    
      registry:
        nacos:
          server-addr: 127.0.0.1:8848
          username: nacos
          password: nacos
          group: SEATA_GROUP
          namespace: seata_namespace_001
          application: seata-server
    
      config:
        type: nacos
        nacos:
          server-addr: 127.0.0.1:8848
          username: nacos
          password: nacos
          group: SEATA_GROUP
          namespace: seata_namespace_001  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    point服务配置文件

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
        alibaba:
          seata:
            tx-service-group: server-point-tx_group
    seata:
      application-id: point
      service:
        vgroup-mapping:
          server-order-tx_group: default
    
      registry:
        nacos:
          server-addr: 127.0.0.1:8848
          username: nacos
          password: nacos
          group: SEATA_GROUP
          namespace: seata_namespace_001
          application: seata-server
    
      config:
        type: nacos
        nacos:
          server-addr: 127.0.0.1:8848
          username: nacos
          password: nacos
          group: SEATA_GROUP
          namespace: seata_namespace_001
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    方法添加注解@GlobalTransactional
    在这里插入图片描述
    控制台打印日志,有提示回滚信息Rollbacked。查看数据库,没有存入任何数据在这里插入图片描述在这里插入图片描述

    完事了

  • 相关阅读:
    MyBatis
    Python--类
    PHP 危险函数2-代码执行语句
    202204 RAC环境归档满
    网络要素服务(WFS)详解
    Base64、AES、MD5的区别与应用
    西宁市初中生地会考报名照片尺寸要求及手机自拍方法
    你们公司每次迭代周期多久?加班多么?
    Linux下:文件与路径、用户管理、常用命令、vim
    红黑树(三) - Linux内核实现
  • 原文地址:https://blog.csdn.net/lovely960823/article/details/126319652