分布式事务seata启动报 - not support register type: null

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/m0_37886429/article/details/100551027

在做分布式事务seata版本升级的时候报错,内容如下:

Exception in thread "main" io.seata.common.exception.NotSupportYetException: not support register type: null
	at io.seata.config.ConfigurationFactory.buildConfiguration(ConfigurationFactory.java:80)
	at io.seata.config.ConfigurationFactory.getInstance(ConfigurationFactory.java:65)
	at io.seata.server.metrics.MetricsManager.init(MetricsManager.java:49)
	at io.seata.server.Server.main(Server.java:56)
Caused by: java.lang.IllegalArgumentException: illegal type:null
	at io.seata.config.ConfigType.getType(ConfigType.java:62)
	at io.seata.config.ConfigurationFactory.buildConfiguration(ConfigurationFactory.java:78)
	... 3 more

这个是因为分布式事务在启动的时候环境变量 SEATA_CONFIG_ENV 的配置问题,解决有两种方法:一个是先声明环境变量,然后把registry.conf 文件改成 registry-环境变量.conf,然后启动;二是提起在配置文件中修改,启动时候直接加载配置即可。

我这边采用的是第一种:

echo "export SEATA_CONFIG_ENV=dev" >> /etc/profile
source /etc/profile
mv registry.conf registry-dev.conf

##启动,端口是我自己在file.conf 文件修改的,默认是8091
nohup sh seata-server.sh --host 192.168.16.190 --port 8092 &

在这里插入图片描述
在这里插入图片描述

在启动jar包的时候这边是通过环境变量的方式来连接各个环境的分布式事务,启动脚本如下:

#!/bin/sh
export SEATA_CONFIG_ENV=dev
nohup java -jar -Xms512m -Xmx1024m  test-service.jar -DseataConfigEnv=dev &

在java源码里面,要指定不通环境的配置文件:
在这里插入图片描述

### cat file-dev.conf 
transport {
  # tcp udt unix-domain-socket
  type = "TCP"
  #NIO NATIVE
  server = "NIO"
  #enable heartbeat
  heartbeat = true
  #thread factory for netty
  thread-factory {
    boss-thread-prefix = "NettyBoss"
    worker-thread-prefix = "NettyServerNIOWorker"
    server-executor-thread-prefix = "NettyServerBizHandler"
    share-boss-worker = false
    client-selector-thread-prefix = "NettyClientSelector"
    client-selector-thread-size = 1
    client-worker-thread-prefix = "NettyClientWorkerThread"
    # netty boss thread size,will not be used for UDT
    boss-thread-size = 1
    #auto default pin or 8
    worker-thread-size = 8
  }
}
service {
  #vgroup->rgroup
  vgroup_mapping.ocss-service="default"
  #only support single node
  default.grouplist = "0.0.0.0:8092"
  #degrade current not support
  enableDegrade = false
  #disable
  disable = false
  disableGlobalTransaction = false
}

client {
  async.commit.buffer.limit = 10000
  lock {
    retry.internal = 10
    retry.times = 30
  }
}

### cat registry-dev.conf 
registry {
  # file 、nacos 、eureka、redis、zk
  type = "file"

  nacos {
    serverAddr = "localhost"
    namespace = "public"
    cluster = "default"
  }
  file {
    name = "file-dev.conf"
  }
}

config {
  # file、nacos 、apollo、zk
  type = "file"
  file {
    name = "file-dev.conf"
  }
}

猜你喜欢

转载自blog.csdn.net/m0_37886429/article/details/100551027