关于Seata找不到集群的问题can not get cluster name in registry config

问题的出现

seata:
  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
    # 参考tc服务自己的registry.conf中的配置
    type: nacos
    nacos: # tc
      server-addr: ip:8848
      namespace: ""
      group: DEFAULT_GROUP
      application: seata-tc-server # tc服务在nacos中的服务名称
      username: nacos
      password: nacos
  tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称
  service:
    vgroup-mapping: # 事务组与TC服务cluster的映射关系
      seata-demo: SH

给服务整合到Seata的TC服务时,配置集群这里出现了找不到集群的问题,报错如下
ERROR 17016 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager : can not get cluster name in registry config 'service.vgroupMapping.storage-service-fescar-service-group', please make sure registry config correct
但我们明明配置了tx-service-group
可以找到这行报错来自NettyClientChannelManager ,于是我顺腾摸瓜找到报错的地方向上DEBUG
image.png
可以看到日志来自这个reconnect(String group)方法,这个方法就是将配置的tx-service-group传入并找到对应的集群名称,于是我就开始向上一路摸索
在这里插入图片描述
发现这个组名称是通过GlobalTransactionScanner这个类进行构造的,于是我就找到这个类的自动装配配置类
在这里插入图片描述
在这里找到了问题的根源,也就是报错日志中的xxxxx-service-fescar-service-group到底是从何而来,这里会首先对txServiceGroup进行判断,如果为空,那么就将txServiceGroup设为当前服务的名称 + -fescar-service-group,而之所以这个txServiceGroup值为空是因为,这个自动配置类扫描的前缀是spring.cloud.alibaba.seata!!!!!这里有一个单独的为txServiceGroup注入的属性配置类
在这里插入图片描述
而我们在配置文件中配置的注入的tx-service-groupseata前缀的,所以才会找不到tx-service-group
在这里插入图片描述

解决方法

修改配置文件中的tx-service-group的位置为

spring:
  cloud:
    alibaba:
      seata:
        tx-service-group: 
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在注册表配置中无法获取集群名称 'service.vgroupMapping.default_tx_group',请确保注册表配置正确。\[1\] \[2\] \[3\] #### 引用[.reference_title] - *1* [can not get cluster name in registry configservice.vgroupMapping.xx‘, please make sure registry](https://blog.csdn.net/Saintmm/article/details/121725763)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [can not get cluster name in registry configservice.vgroupMapping.xxx-seata-service-group](https://blog.csdn.net/zxy144/article/details/122560661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [seata报错:can not get cluster name in registry config service.vgroupMapping.xxx](https://blog.csdn.net/virtual_users/article/details/130423120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值