seata 集成报错记录seata no available service ‘null‘ found, please make sure registry config correct

seata 集成报错记录 seata no available service ‘null’ found, please make sure registry config correct

环境

  1. springcloud + nacos 1.4.1 + seata 1.4.2
  2. 并且seata使用naocs进行服务治理和配置管理
  3. config.txt配置内容
service.vgroupMapping.intellsite-system-group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://修改数据库IP:3306/ry-seata?useUnicode=true
store.db.user=root
store.db.password=修改数据库密码
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
client.undo.logSerialization=kryo
  1. client端yaml配置
# spring配置
spring: 
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        loginUsername: admin
        loginPassword: 123456
    dynamic:
      druid:
        initial-size: 5
        min-idle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        filters: stat,wall,slf4j
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      datasource:
          # 主库数据源
          master:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://数据库IP:3306/intellsite?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
            password: 修改密码
          # 从库数据源
          # seata_order数据源
          order:
            username: root
            password: 修改密码
            url: jdbc:mysql://数据库IP:3306/seata_order?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            driver-class-name: com.mysql.cj.jdbc.Driver
          # seata_account数据源
          account:
            username: root
            password: 修改密码
            url: jdbc:mysql://数据库IP:3306/seata_account?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            driver-class-name: com.mysql.cj.jdbc.Driver
          # seata_product数据源
          product:
            username: root
            password: 修改密码
            url: jdbc:mysql://数据库IP:3306/seata_product?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            driver-class-name: com.mysql.cj.jdbc.Driver
      #开启seata代理,开启后默认每个数据源都代理,如果某个不需要代理可单独关闭      
      seata: true

# seata配置
seata:
  # 默认关闭,如需启用spring.datasource.dynami.seata需要同时开启
  enabled: true
  # Seata 应用编号,默认为 ${spring.application.name}
  application-id: ${spring.application.name}
  # Seata 事务组编号,用于 TC 集群名
  tx-service-group: ${spring.application.name}-group
  # 关闭自动代理
  enable-auto-data-source-proxy: false
  # 服务配置项
  service:
    # 虚拟组和分组的映射
    vgroup-mapping:
      intellsite-system-group: default
  config:
    type: nacos
    nacos:
      serverAddr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      namespace:

在自己本地环境进行集成后GlobalTransaction 能生效, 同样的代码在公司的测试环境进行seata集成,报错 “seata no available service ‘null’ found, please make sure registry config correct”,
网上找了说是配置的问题,检查了配置和本地的完全没有变,突然一天晚上睡觉前想到一个地方可能有点问题,第二天试了一下果然解决了。

原因

自己本地和公司测试环境用的nacos是同一个数据库,自己在本地执行了 nacos-config.sh , 并在nacos中生成了对应的seata配置,所有在测试环境就没有再执行 nacos-config.sh 脚本,导致测试环境的nacos检查不到对应的配置,故报错service为“null”

处理

在测试环境重新执行了 nacos-config.sh脚本,使nacos重新添加配置到nacos中
在这里插入图片描述

得到经验

nacos的配置通过其他方法修改了配置(如直接修改数据库,或通过其他同数据库的nacos进行编辑),nacos没法生效,必须在当前nacos的控制台进行新增或编辑,或将已经有的点编辑,不修改任何配置,直接点发布,让当前环境的nacos检查到配置的变化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值