栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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检查到配置的变化

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号