springcloud通过nacos整合seata遇到的问题

2023-05-16

1、配置完成后,启动seata-server服务器,注册到nacos,启动client后访问接口,报错如下:

io.seata.common.exception.FrameworkException: No available service
    at io.seata.core.rpc.netty.AbstractNettyRemotingClient.loadBalance(AbstractNettyRemotingClient.java:257)
    at io.seata.core.rpc.netty.AbstractNettyRemotingClient.sendSyncRequest(AbstractNettyRemotingClient.java:133)
    at io.seata.rm.AbstractResourceManager.branchRegister(AbstractResourceManager.java:67)
    at io.seata.rm.DefaultResourceManager.branchRegister(DefaultResourceManager.java:96)
    at io.seata.rm.datasource.ConnectionProxy.register(ConnectionProxy.java:238)
信息显示,seata没有可用的服务,此时一般为seata服务器中register的配置与client项目中register配置不一致导致。查看源码。

进入AbstractNettyRemotingClient报错位置。

 发现address为null导致。打断点,发现inetSocketAddressList的size为空,所以进入lookup方法中。

 我是用的是nacos,所以进入的NacosRegistryServiceImpl的lookup方法。

 此处发现,service的获取与4个参数相关,对应配置为 


#seata-server的应用名称
seata.registry.nacos.application=flyc-seata-server
#seata-server的组名
seata.registry.nacos.group=myseatagroup
#事务分组名称
seata.tx-service-group=service-order-group
#nacos中的配置
service.vgroupMapping.service-order-group default  

分别对应seata-server中的配置register.conf

 除此之外,还有一个参数,namespace,此处源码没有体现,但是在请求nacos获取seata的service列表中有体现。如下图,在NamingProxy中的请求中。

 此处为想nacos请求注册在nacos的所有service,获取所有service的信息。如何到这一步的可以查看源码,一步步得到。同时,seata-client也有启动一个定时线程,定时更新注册在nacos中的service。在HostReactor中。

 综上所述,如果seata报错,io.seata.common.exception.FrameworkException: No available service,需要检查client和sever的参数匹配情况,共有四个参数。

 application = "flyc-seata-server"
 group = "myseatagroup"
 namespace = "1"
 cluster = "default"

在使用nacos的情况下,client的配置是

#seata-server的应用名称

seata.registry.nacos.application=flyc-seata-server

#seata-server的组名

seata.registry.nacos.group=myseatagroup

#事务分组名称

seata.tx-service-group=service-order-group

#nacos中的配置

service.vgroupMapping.service-order-group=default

seata.registry.nacos.namespace=1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springcloud通过nacos整合seata遇到的问题 的相关文章

随机推荐

  • 利用Radiogroup Radiobutton 实现滑动效果菜单

    第一次在满世界大侠的地方撰写博客 xff0c 所以不免紧张 xff0c 怕自己写出让人消掉大牙的文章 本着学习的态度 xff0c 最后我还是决定把自己的学习感想记录下来 首先我要感谢一个哥们 xff0c 大部分的内容都是他的杰作 xff0c
  • 一、初识VUE

    一 什么是vuejs VUE是一个渐进式的框架 xff0c 什么是渐进式呢 xff1f 渐进式意味着可以将vue作为应用的一部分 xff0c 嵌入应用 也就是说 xff0c 在一个整体项目中 xff0c 部分可用jQuery xff0c 部
  • Linux目录概述

    一 概述 由于开发linux发行版的社区或这企业太多 xff0c 如过每个Linux发行版的目录结构都不相同 那么在管理和使用上会造成很多困扰 xff0c 所以就有了FHS Filesystem Hierarchy Standard 的出现
  • ls与cp命令详解

    一 文件与目录检视 ls a xff1a 全部的文件 xff0c 连同隐藏文件 xff08 开头为 的文件 xff09 一起列出来 xff08 常用 xff09 A xff1a 全部的文件 xff0c 连同隐藏文件 xff0c 但不包括 与
  • linux 安装JDK

    一 下载JDK 版本 xff1a jdk 8u191 linux x64 tar gz 链接 xff1a https pan baidu com s 1w9HpHBRPHCfoiEpGSKJqXA 提取码 xff1a whya 二 安装 创
  • java调用DLL之jna

    一 添加maven依赖 span class token comment lt https mvnrepository com artifact net java dev jna jna gt span span class token t
  • 三、vue :定义变量、v-for、v-on示例

    一 vue定义变量 let xff1a 定义变量const xff1a 定义常量 contst定义常量时 xff0c 必须赋值 指向的对象不可改变 xff0c 但是对象中的属性 contst obj 61 name 39 张三 39 obj
  • 二、vue插值操作

    一 Mustache mustache语法就是两个大括号 34 34 mastache语法不仅直接可以写值 xff0c 也可以写一些简单的表达式 span class token tag span class token tag span
  • 二、vue中v-bind使用

    一 v bind基本使用 一个页面中 xff0c 除了标签内容需要动态绑定外 xff0c 标签的属性也需要动态绑定 xff0c 例如 xff1a a元素的href属性和img元素的src属性 这时就需要用到v bind了 span clas
  • 四、vue计算属性的使用

    通常 xff0c 在模板中可直接通过插值语法显示data中的属性 xff0c 但是在某些情况 xff0c 需要将某些数据进行转化后显示或者将多个数据结合起来显示 计算属性的基本使用 span class token tag span cla
  • firewall-cmd 端口管理

    1 开放端口 firewall span class token operator span cmd span class token operator span zone 61 public span class token operat
  • BIND 高级特性(二)-- 动态更新(转)

    BIND 高级特性 xff08 二 xff09 xff0d xff0d 动态更新 转 64 more 64 在很多大的网络中为了简化维护量 xff0c 都使用了DHCP来动态分配IP地址 这样就要求DNS也能够动态的添加和删除记录 BIND
  • Vue内置指令——v-show

    v show的用法与v if类似 xff0c 不同的是带有 v show 的元素始终会被渲染并保留在 DOM 中 v show 只是简单地切换元素的 CSS 属性 display span class token doctype span
  • QtCreator按顺序编译多个子项目

    QtCreator按顺序编译多个子项目 0 环境1 创建子项目2 创建SubProjectSln的子项目3 三个项目内容3 1 Dll3 2 Lib3 3 UiApp 4 构建 0 环境 Qt5 3 2 mingw482 32 1 创建子项
  • windows与wsl互相访问

    找出能与WSL2连接的那个IP 启动WSL2 xff0c 键入如下命令 xff1a span class token function cat span etc resolv conf 如 xff1a nameserver 172 27 1
  • 平衡树的深度与最少结点数问题

    对于一棵平衡树 xff0c 如果以NhNh表示深度为h时含有的最少结点数 有如下的规律 xff1a N0 61 0 N1 61 1 N2 61 2 Nh 61 Nh 1 43 Nh 2 43 1 这里研究的是最小结点数 xff0c 最多结点
  • ubuntu报错记录:bash:XXX.sh权限不够统一解决办法

    在Ubuntu上执行提示如下报错时 xff1a bash xxx sh权限不够 其中的xxx表示报错文件名 解决办法 span class token function sudo span span class token function
  • Ubuntu 修改中文字体教程

    刚刚开始使用Ubuntu xff0c 在终端代码里可以看到奇奇怪怪丑陋的中文字体 xff0c 怎么换成更好看的中文字体呢 看了很多教程都是通过修改终端字体来实现 xff0c 但这样就不能使用自己想要的英文字体了 xff0c 比如我使用 So
  • STM32接口FSMC与FMC控制 XXROM

    FMC是STM32F429 439专有的 xff0c 因为驱动SDRAM时需要定时刷新 xff0c 而FSMC存在于F1和F4中我们常用的芯片中 他们的全称为 xff1a Flexible static memory controller
  • springcloud通过nacos整合seata遇到的问题

    1 配置完成后 xff0c 启动seata server服务器 xff0c 注册到nacos xff0c 启动client后访问接口 xff0c 报错如下 xff1a io seata common exception FrameworkE