【开发问题记录】启动某个微服务时无法连接到seata(seata启动或配置异常)

问题记录

  • 一、问题描述
    • 1.1 问题复现
      • 1.1.1 将Linux中的部分微服务启动
      • 1.1.2 在本地启动当时出错的服务
    • 1.2 解决思路
      • 1.2.1 Nacos中seata相关的信息
      • 1.2.2 Linux中seata相关的信息
  • 二、问题解决
    • 2.1 seata的配置错误
      • 2.1.1 Nacos中seata的配置问题
      • 2.1.2 命名空间问题的发现
    • 2.2 网络连接(一个小失误)
  • 三、问题总结

一、问题描述

1.1 问题复现

1.1.1 将Linux中的部分微服务启动

  • docker start xxx
  • docker ps -a

在这里插入图片描述


  • 然后这些服务都会被注册到nacos中

在这里插入图片描述


  • 包含一些通用的配置服务

在这里插入图片描述


1.1.2 在本地启动当时出错的服务

  • 启动后,刷新前端页面,出现了报错异常,报错信息为
  • no available service found in cluster 'default',please make sure registry config correct and keep your seata server running
  • 看报错内容说明是在集群default中没有找到可用的服务,确保配置文件正确并保证seata服务正常启动

在这里插入图片描述


1.2 解决思路

根据这个异常提示信息,我先是查看了nacos中的seata相关的配置信息,然后又去linux中查看了seata的日志信息

1.2.1 Nacos中seata相关的信息

  • 首先seata服务启动是正常的

在这里插入图片描述


  • 检查seata的yaml文件内容,没有发现什么问题

在这里插入图片描述

1.2.2 Linux中seata相关的信息

  • 查看linux中seata的日志信息,看看有没有报错提示
  • docker logs -f seata
  • 发现了一些与Mysql相关的错误信息,好像是Mysql没有连接上

在这里插入图片描述

  • 然后查看MySql的日志信息
  • docker logs -f mysql
  • MySQL中没有发现特别的报错信息,但是有一个“不允许操作”的提示

在这里插入图片描述


二、问题解决

由于我这篇文章是解决完问题之后才总结的,我觉得应该会有一些读者大佬在看到我上面的问题复现时就已经看出问题所在了,我当时在找的时候确实没有发现,不过后来发现后在解决的时候又有一个小失误

2.1 seata的配置错误

  • 其实问题一开始就可以找到,只是我对这块不是很熟悉,我这里的错误需要对照两块内容:
    • 一个就是异常中提到的集群‘default’中找不到可用的微服务,这是因为我的Nacos中seata的配置文件里没有配置集群‘default’
    • 至于另一个当时没有发现命名空间的问题,这还是在看到Linux中seata的配置文件里的命名空间跟Nacos中的不一样才明白过来

2.1.1 Nacos中seata的配置问题

错误版本:

seata:registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址type: nacos # 注册中心类型 nacosnacos:server-addr: 192.168.113.128:8848 # nacos地址namespace: "c975b6f4-de7e-40ad-9b15-4a245ce7a2ef" # namespace,默认为空group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUPapplication: seata-server # seata服务名称username: nacospassword: nacostx-service-group: tjxt # 事务组名称service:vgroup-mapping: # 事务组与cluster的映射关系tjxt: "default"
  • 这里是没有配置集群cluster及后面发现的命名空间的错误

正确版本:

seata:registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址type: nacos # 注册中心类型 nacosnacos:server-addr: 192.168.113.128:8848 # nacos地址namespace: "f923fb34-cb0a-4c06-8fca-ad61ea61a3f0"cluster: "default"group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUPapplication: seata-server # seata服务名称username: nacospassword: nacostx-service-group: tjxt # 事务组名称service:vgroup-mapping: # 事务组与cluster的映射关系tjxt: "default"

2.1.2 命名空间问题的发现

  • 这个问题起初是在Linux中seata的配置文件中发现的
  • docker exec -it seata bash
  • ls
  • cd resources/
  • cat application.yml
  • 找到seata的部分,发现命名空间不一样

在这里插入图片描述

  • 其实最后才发现,这里的命名空间就是Nacos中微服务—>服务列表后面的内容:

在这里插入图片描述


2.2 网络连接(一个小失误)

  • 解决完这些后发现还是报错,尝试了好久发现网络ping不通,最后发现是我的Windows防火墙没关,这样才导致我本地访问不到Linux中的IP和端口。
  • 至此,问题解决!

三、问题总结

导致这次问题出现的原因有两个:

  • 1.第一个就是seata的配置问题,这里要注意检查Nacos中的配置和Linux容器中seata的配置
  • 2.第二个是网络连接的问题,在本地与虚拟机之间要进行网络连接,需要关闭双方的防火墙,避免访问不到对方的IP和端口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT:ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别

ChatGPT:ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别 在 Spring Boot 应用中,ThreadPoolTaskExecutor 是一种用于管理线程池的执行器,通常用于异步任务的执行。将 ThreadPoolTaskExecutor 定义…

wpf基础

在 WPF (Windows Presentation Foundation) 中,Style 是一种强大的资源,允许你定义一组属性值,这些值可以被多个控件实例共享。使用 Style 可以减少重复的 XAML 代码,并且使得 UI 的一致性和可维护性得到提高。 以下是一些 Style…

SQL与NoSQL的区别

SQL(关系型数据库) 数据结构:基于表格的结构化数据模型,遵循关系代数原则。每个表有固定的模式,包含列和行,且列具有预定义的数据类型。数据关系:支持复杂的关系表达式和JOIN操作,实现多个表之间的关联和引…

IP地址专用SSL/https证书——10分钟签发

一般常用的SSL证书多为域名型SSL证书,即需要提供准确的域名。如果不能提供域名,只能提供IP地址,则需要一种特殊的SSL证书——IP地址证书。下面是IP地址证书的申请教程 IP地址专用SSL证书获取链接https://www.joyssl.com/certificate/select/…

智能闹钟能实现哪些功能

智能闹钟在结合了传统闹钟的定时提醒功能基础上,还集成了许多现代智能技术的特性,从而实现了多种功能。以下是一些智能闹钟常见的功能: 个性化闹钟设置:用户可以根据自己的需求设置多个闹钟,每个闹钟都可以设置不同的时…

vscode+git解决远程分支合并冲突

1)远程分支和远程分支不复杂情况合并 例如readme的冲突 可直接在github上解决 删到只剩下 #supergenius002 合并冲突测试1/合并测试冲突1合并测试冲突2/合并测试冲突2就行 《《《/》》》也要删掉 2)但如果是复杂的冲突,让我们回到vscod…

OpenCV库学习之cv2.normalize函数

OpenCV库学习之cv2.normalize函数 一、简介 cv2.normalize是OpenCV库中的一个函数,用于对图像进行归一化处理。归一化是一种线性变换,可以将图像像素值的范围缩放到指定的区间。这种操作在图像处理中非常有用,特别是在需要将图像数据用于某些…

SpringMVC源码解析(二):请求执行流程

SpringMVC源码系列文章 SpringMVC源码解析(一):web容器启动流程 SpringMVC源码解析(二):请求执行流程 目录 前言DispatcherServlet入口一、获取HandlerExcutionChain(包括Handler)1、获取Handler1.1、通过request获取查找路径1.2、通过查找路径获取Han…

overleaf,latex使用过程中记录

helvet 宏包提供了一个类似 Helvetica 的无衬线字体,可用于文档的标题和小标题等. Courier是一个等宽字体的粗衬线字体,主要是依据打字机所打印出来的字型来设计 \usepackage[hyphens]{url} 是 LaTeX 中用于处理 URL 排版的宏包 \urlstyle{rm} 设置url字体样式&a…

删除多余代码后遇到 NG04014 错误:路径匹配策略导致的调试问题

今天在移除无用代码时删了一些组件,再打开local环境下就打不开了。 一开始就以为是常见的引入报错,打开console发现 Error: NG04014: Invalid configuration of route {path: "drive/settings/", redirectTo: "trash"}: please prov…

c++修炼之路之STL_map,set

目录 一:序列式容器与键值对 二:set与multiset 三:map与multimap 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 一:序列式容器与键值对 1.在初阶阶段,我们已经接触过S…

【Linux】 Linux makefile 教程

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成…

不同尺寸进行适配

1、适应不同分辨率 平板: 2176 * 1600 一体机:1920 * 1080 2、默认平板css 3、入口文件上面添加 4、XX.css 采用媒体文件 media only screen and (min-width:1920px) and (max-device-width: 1930px){ } 5、使用grid分布 6、使用bootstrap布局&#x…

Vue基础2

1.监视属性 先推荐大家安装第一个vscode常用插件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>天气案例_监视简写</title><!-- 引入Vue --><script type"text/javascript"…

Linux操作系统常用命令总结

1、网络配置查看 要想知道网络的配置状态&#xff0c;我们可以使用ifconfig 或者 ip命令来查看。 这两个命令功能都差不多&#xff0c;不过它们属于不同的软件包&#xff0c;ifconfig属于net-tools软件包&#xff0c;ip属于iproute2软件包&#xff0c;通过查资料&#xff0c;…

【全栈实战】大模型自学:从入门到实战打怪升级,20W字总结(二)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本栏讲解【全栈实战】大模型自学&#xff1a;从入门到实战打怪升级。 &#x1f514;专栏持续更新&#xff0c;适合人群&#xff1a;本科生、研究生、大模型爱好者&#xff0c;期…

Android笔试面试题AI答之Activity(5)

答案来自文心一言&#xff0c;仅供参考 文章目录 1.简述Activity&#xff0c;Intent&#xff0c;Service是什么关系 &#xff1f;一、定义与功能二、关系描述 2.简述Android中activity&#xff0c;context&#xff0c;application有什么不同&#xff1f;一、定义与功能二、不同…

【通俗理解】涌现现象与神经网络——从结构到智能的飞跃

【通俗理解】涌现现象与神经网络——从结构到智能的飞跃 涌现现象的类比 你可以把涌现现象比作一个“魔法锅”&#xff0c;锅里的各种原料&#xff08;内在结构和相互作用&#xff09;在特定的条件下相互作用&#xff0c;最终“熬制”出令人惊叹的“魔法汤”&#xff08;整体性…

vim进行行选择或列选择

Ctrlv&#xff1a;用于进入块选择模式&#xff08;Visual Block Mode&#xff09;&#xff0c;用于选择矩形块区域。你可以用这种模式来选择多个列或矩形区域的内容。 Shiftv&#xff1a;用于进入行选择模式&#xff08;Visual Line Mode&#xff09;&#xff0c;用于选择整行…

【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践

系列篇章&#x1f4a5; No.文章1【Qwen部署实战】探索Qwen-7B-Chat&#xff1a;阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验&#xff1a;用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B&#xff1a;通过FastApi框架实现API的部署与调用4【Q…