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

news2024/11/13 11:15:46

问题记录

  • 一、问题描述
    • 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 # 注册中心类型 nacos
    nacos:
      server-addr: 192.168.113.128:8848 # nacos地址
      namespace: "c975b6f4-de7e-40ad-9b15-4a245ce7a2ef" # namespace,默认为空
      group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUP
      application: seata-server # seata服务名称
      username: nacos
      password: nacos
  tx-service-group: tjxt # 事务组名称
  service:
    vgroup-mapping: # 事务组与cluster的映射关系
      tjxt: "default"
  • 这里是没有配置集群cluster及后面发现的命名空间的错误

正确版本:

seata:
  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
    type: nacos # 注册中心类型 nacos
    nacos:
      server-addr: 192.168.113.128:8848 # nacos地址
      namespace: "f923fb34-cb0a-4c06-8fca-ad61ea61a3f0"
      cluster: "default"
      group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUP
      application: seata-server # seata服务名称
      username: nacos
      password: nacos
  tx-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.coloradmin.cn/o/1957276.html

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

相关文章

Python数值计算(12)

本篇说说Neville方法。Neville方法的基础是,插值多项式可以递归的生成,有时进行插值的目的是为了计算某个点的值,这个时候并不需要将拟合曲线完全求出,而是可以通过递归的方式进行计算,具体操作如下: 例如…

代码实践思考:ROS1和ROS2

扩展 能否借助人工智能工具将ROS1批量转为ROS2如何更高效的进行ROS学习 ROS1大量案例直接批处理用智能工具转为ROS2案例 不同版本之间的工具软件直接用智能方式进行代码升级 例如OpenCV之类,一些函数变化,直接用智能工具进行批量代码优化 机器人画圆-…

滞回比较器工作原理,应用,TINA仿真

滞回比较器 滞回比较器的主要应用是增加滞回控制,让其对微小的变化不那么敏感,增强抗干扰能力,避免由噪声引起的不稳定状态,通常用于噪声环境下的阈值检测以及信号调理。根据不同需求,滞回比较器还可以设计成开漏极输出…

超级智能体创造营:启动!我的情侣匹配度测试助手

零、写在前面 听说由百度文心智能体平台主办,万众瞩目的 超级智能体创造营 第三期启动啦! 在本期的创造营中,博主开发了一款有趣的超级智能体:情侣匹配度测试助手。 为什么要开发它呢,快来听博主娓娓道来吧~ 一、超…

【通俗理解】自由意志与预测——混沌理论与预测的不可能性

【通俗理解】自由意志与预测——混沌理论与预测的不可能性 自由意志与预测的类比 你可以把自由意志比作一只难以捉摸的蝴蝶,它的每一次振翅都可能引发不可预测的风暴。而预测则像是一个试图捕捉这只蝴蝶的网,但往往因为蝴蝶的微小变动而错失目标。 自由意…

五大AI测试开源框架及使用方法介绍

AI测试框架是一套系统的测试工具和方法,包括测试的规范和基础代码,涵盖了一系列的测试思想和方法。这些框架可以帮助开发者和测试人员对AI模型进行测试,确保AI模型在真实世界的应用中能够达到预期的效果。接下来的内容,我们将介绍…

PHP苹果 V X iPhone微商i o s多分开V X语音转发密友朋友圈一键跟圈软件

苹果VX神器!iPhone微商必备:ios多开、VX语音转发、密友朋友圈一键跟圈软件大揭秘! 一、iOS多开新境界,工作生活两不误! 你是不是也烦恼过,想要在工作号和生活号之间自由切换,却因为iPhone的限制…

【vue3】pinia配置(任意组件通信,集中状态管理容器)

选择式写法 一、安装pinia依赖 终端输入:npm install pinia 二、配置pinia 第一步:创建仓库,在src目录下创建文件夹modules和文件index.ts. 第二步:配置index.ts // 创建pinia大仓库 import { createPinia } from "pin…

H5+JS视频列表

源码在最后面 好像有些浏览器不适配(可能是设置了禁用自动播放的功能) 实现功能 视频自动无声播放鼠标置于某个视频板块之上时自动无声播放点击视频跳转视频链接 效果图(部分 视频加载可能有点慢) 部分功能实现原理 1.无声播放…

学习C语言第十六天(调试、)

调试 第一题 C 第二题 A 第三题 C 第四题 C 第五题 D release不可以调试 第六题 越界访问访问到了i的地址 编程题 模拟strcpy void my_strcpy(char*arr1,char*arr2) {while (*arr2){*arr1 *arr2;} } int main() {char arr1[50…

【足球走地软件】走地数据分析预测【大模型篇】走地预测软件实战分享

了解什么是走地数据? 走地数据分析,在足球赛事的上下文中,是一种针对正在进行中的比赛进行实时数据分析的方法。这种方法主要用于预测比赛中的某些结果或趋势,如总进球数、比分变化、球队表现等。 在足球走地数据分析中&#xf…

仕考网:公务员可以报考军队文职吗?

公务员可以报考军队文职考试,但是需要满足前提条件。 对于已经与国家、地方的用人单位建立劳动关系的社会人才,在获得当前用人单位的许可后才可以申请报考。 在面试过程中,考生必须出示一份由其用人单位出具的且加盖公章的同意报考证明。一…

C++: set容器

一、关联式容器 我们已经了解了STL中的部分容器,比如vector、list、deque等,这些容器被称为序列式容器,其底层为线性序列的数据结构,里面存储的是元素本身。 关联式容器也是用来存储数据的,与序列式容器不同&#xf…

Windows中启用Linux命令功能WSL,并安装Linux子系统

文章目录 一、WSL简介 二、启用WSL 三、参考文章 一、WSL简介 WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)允许用户直接在 Windows 上运行Linux 环境(包括大多数命令行工具、实用程序和应用程序&#x…

汽车软件开发中的功能安全挑战与应对策略:基于Jira平台构建端到端的可追溯性,实现精细化需求管理

2024年7月18-19日,龙智携汽车软件开发及管理解决方案创新亮相2024 ATC汽车软件与安全技术周。龙智技术支持部负责人&Atlassian认证专家叶燕秀、龙智功能安全高级工程师景玉鑫在活动主会场联合发表了精彩演讲,分享推动汽车软件开发与功能安全的创新实…

硬核产品经理

链接:硬核产品经理 (qq.com)

DNS劫持实验

实验背景 利用ettercap进行DNS欺骗,攻击者冒充域名服务器,也就是把查询的IP地址设为攻击者 的IP地址,这样用户上网就只能看到攻击者设计的网页。 实验设备 一个网络 net:cloud0 一台模拟黑客主机 kali 一台靶机 windows 主机 实验拓扑 …

消息队列-rabbitmq(生产者.消费者. 消息.可靠性)

生产者者的可靠性 为了保证我们生产者在发送消息的时候消息不丢失,我们需要保证发送者的可靠性 1.生产者重试 假如发送消息的时候消息丢失 ,我们可以使用发送者 重试机制,尝试重新发送消息 实现该机制非常简单,只需要在yml文…

The Llama 3 Herd of Models.Llama 3 模型第1,2,3部分全文

现代人工智能(AI)系统是由基础模型驱动的。本文提出了一套新的基础模型,称为Llama 3。它是一组语言模型,支持多语言、编码、推理和工具使用。我们最大的模型是一个密集的Transformer,具有405B个参数和多达128K个tokens的上下文窗口。本文对Llama 3进行了广泛的实证评价。我们…

系统架构师考点--系统架构设计(中)

大家好。今天继续总结一下系统架构设计的一些考点。 一、软件架构复用 软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核…