整合spring-cloud-alibaba-seata引发的惨案

整合spring-cloud-alibaba-seata引发的惨案


   依赖



编写配置类

在项目数据库中创建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,

  `ext` varchar(100) DEFAULT NULL,

  PRIMARY KEY (`id`),

  UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

创建俩个配置文件

- registry.conf

  registry {

    # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa

    type = "file"

    #试用默认的文件格式

    file {

      name = "file.conf"

    }

  }


  config {

    # file、nacos 、apollo、zk、consul、etcd3、springCloudConfig

    type = "file"

    #试用默认的文件格式

    file {

      name = "file.conf"

    }

  }

- file.conf

  transport {

    # tcp udt unix-domain-socket

    type = "TCP"

    #NIO NATIVE

    server = "NIO"

    #enable heartbeat

    heartbeat = true

    # the client batch send request enable

    enableClientBatchSendRequest = true

    #thread factory for netty

    threadFactory {

      bossThreadPrefix = "NettyBoss"

      workerThreadPrefix = "NettyServerNIOWorker"

      serverExecutorThread-prefix = "NettyServerBizHandler"

      shareBossWorker = false

      clientSelectorThreadPrefix = "NettyClientSelector"

      clientSelectorThreadSize = 1

      clientWorkerThreadPrefix = "NettyClientWorkerThread"

      # netty boss thread size,will not be used for UDT

      bossThreadSize = 1

      #auto default pin or 8

      workerThreadSize = "default"

    }

    shutdown {

      # when destroy server, wait seconds

      wait = 3

    }

    serialization = "seata"

    compressor = "none"

  }

  service {

    #transaction service group mapping

    vgroupMapping.my_test_tx_group = "default"

    #only support when registry.type=file, please don't set multiple addresses

    default.grouplist = "192.168.23.160:8091"

    #degrade, current not support

    enableDegrade = false

    #disable seata

    disableGlobalTransaction = false

  }


  client {

    rm {

      asyncCommitBufferLimit = 10000

      lock {

        retryInterval = 10

        retryTimes = 30

        retryPolicyBranchRollbackOnConflict = true

      }

      reportRetryCount = 5

      tableMetaCheckEnable = false

      reportSuccessEnable = false

    }

    tm {

      commitRetryCount = 5

      rollbackRetryCount = 5

    }

    undo {

      dataValidation = true

      logSerialization = "jackson"

      logTable = "undo_log"

    }

    log {

      exceptionRate = 100

    }

  }

最后在yml中配置

spring:

  application:

    name: user

  datasource:

    hikari:

      username: root

      password: 123456

      driver-class-name: com.mysql.cj.jdbc.Driver

      jdbc-url: jdbc:mysql://localhost:3306/zhuoyue_user?serverTimezone=UTC&characterEncoding=utf8

  cloud:

    alibaba:

      seata:

        # 这里要和file.conf文件中一致

        tx-service-group: my_test_tx_group

运行seata-server,这里我是在docker上跑

启动项目就一报错


看源码发现没有config.type这个配置字段

通过调试发现在配置里面没有config.type这字段

然后各种检查、最后发现是文件名起错了


晕,要不是不忍心,真想给自己一个大嘴巴子

把文件名改过来后,启动项目,果断成功


这。这这,真滴是大型翻车现场

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。