springboot集成seata

注:1.需要修改seata的配置文件,将其注册到nacos上

     2.在每个数据库中都需要增加undo_log表

CREATE TABLE `undo_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `branch_id` bigint(20) NOT NULL,
  `xid` varchar(100) NOT NULL,
  `context` varchar(128) NOT NULL,
  `rollback_info` longblob NOT NULL,
  `log_status` int(11) NOT NULL,
  `log_created` datetime NOT NULL,
  `log_modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

pom:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
        </dependency>

yml:

server:
  port: 9050

spring:
  application:
    # 应用名称
    name: jeesun-user
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
    alibaba:
      seata:
        tx-service-group: my_test_tx_group
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.31.52:3307/jeesun_user?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: root12

业务类:

    /**
     * 增加GoodsBase
     * @param goodsBase
     */
    @Override
    @GlobalTransactional
    public void add(GoodsBase goodsBase){
        goodsBaseMapper.insert(goodsBase);

        User user=new User();
        user.setId(goodsBase.getId()+100L);
        user.setUsername("张三");
        userFeign.add(user);

        System.out.println(1/0);
    }

猜你喜欢

转载自blog.csdn.net/u013008898/article/details/111477823