Nacos服务列表有服务,但是配置列表不起作用。

news2025/9/16 9:45:01

目录

  • bug现场
  • 解决思路
    • POM文件
    • 启动日志排查
    • 完整pom文件
    • nacos配置中心部署流程

想要重新再写一下springcloud alibaba 的组件配置,再另一个服务renren-product引入,nacos的注册发现和配置中心。前面都很顺利但是修改配置中心配置的时候不起作用!!! 另一个服务代码相同但是起作用了,对比了很多次,最终发现是poom文件的依赖问题!! 分享一下解决思路。

bug现场

请求端口
在这里插入图片描述
controller代码
在这里插入图片描述
application.properties
在这里插入图片描述
bootstrap.properties
在这里插入图片描述

nacos配置中心
在这里插入图片描述
具体配置
在这里插入图片描述

nacos服务列表
在这里插入图片描述
服务列表删除后又能重新生成一个实例对象,就说明加载nacos没问题。

解决思路

如果在 Nacos 服务列表中看到了 “gulimall-product” 服务,但 Nacos 配置中心对其配置没有作用,可能存在以下一些情况:

  1. 配置名称不匹配: 确保在 Nacos 配置中心中的配置项的名称(Data ID)与 “gulimall-product” 服务的应用名称或 Group 名称匹配。默认情况下,Nacos 使用服务名称作为 Group 名称,因此 Data ID 应该是类似于 gulimall-product.properties 的形式。

  2. 配置生效范围: 确保配置项的生效范围正确。在 Nacos 中,配置项可以设置为全局配置或特定服务的配置。如果配置项的生效范围设置为全局,它将应用于所有服务,而不仅仅是 “gulimall-product”。

  3. 配置版本: 检查配置项的版本是否与 “gulimall-product” 服务的版本匹配。如果你在配置项中指定了版本,确保服务也使用相同的版本。

  4. 配置刷新: 如果你在 Nacos 配置中心中修改了配置,但没有触发配置的刷新,那么服务可能仍然使用之前的配置。确保配置的刷新机制已经正确配置,并且服务能够接收到配置的更改通知。

  5. 服务的配置读取: 确保 “gulimall-product” 服务在启动时正确地读取了配置项。如果服务没有正确配置配置中心的客户端或未正确处理配置,那么它可能不会使用配置中心的配置。

  6. 配置项的优先级: 如果在服务的配置中已经定义了某些配置,这些配置可能会覆盖来自配置中心的配置。确保没有在服务本地配置中硬编码了与配置中心配置冲突的值。

  7. Nacos 配置中心的问题: 有时 Nacos 配置中心本身可能出现问题,导致配置无法正确发布或生效。检查 Nacos 配置中心的状态和日志以查看是否存在任何问题。

如果以上情况都排除并且问题仍然存在,建议检查服务的日志以查看是否有有关配置读取和生效的错误或警告信息。同时,确保服务已正确集成 Nacos 配置中心的客户端,并且在应用启动时能够成功连接到 Nacos 服务器并获取配置。如果仍然无法解决问题,可能需要详细查看服务的代码和配置,以确定问题的根本原因。

POM文件

因为product和coupon服务共同依赖了,common服务。所以就没往pom文件配置的方面想。后面是在没办法,就是一行行对比Maven依赖!!最终发现product服务没有依赖这个spring-cloud-starter-bootstrap,这个包。

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

恶心的是因为在application.properties中设置了,注入的值。所以不会报错!!

启动日志排查

在这里插入图片描述
配置文件不起作用从启动日志框起来的地方也能看到。

完整pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.atguigu.gulimall</groupId>
    <artifactId>gulimall-product</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulimall-product</name>
    <description>商品服务</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.atguigu.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

nacos配置中心部署流程

  • 1、如何使用nacos作为配置中心来统一配置管理
  • 1)、引入依赖
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
          </dependency>
  • 2)、创建一个bootstrap.properties
  •  spring.application.name=gulimall-coupon
    
  •  spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    

切记!切记!切记!检查pom文件是否配置加载bootstrap.properties的包

  • 3)、需要给配置中心默认添加一个叫数据集(Data Id) gulimall-coupon.properties。默认规则,应用名.properties
  • 4)、给 应用名.properties 添加任何配置
  • 5)、动态获取配置 Controller层添加
  •  @RefreshScope:动态获取并刷新配置
    
  •  @Value("${配置项的名}"):获取到配置
    

如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置

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

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

相关文章

Spring Boot实现对超大文件进行异步压缩下载

在Web应用中&#xff0c;文件下载功能是一个常见的需求&#xff0c;特别是当你需要提供用户下载各种类型的文件时。本文将演示如何使用Spring Boot框架来实现一个简单而强大的文件下载功能。我们将创建一个RESTful API&#xff0c;通过该API&#xff0c;用户可以下载问价为ZIP压…

linux下CentOS安装mysql-5.7

linux下安装mysql只需要在root用户下安装&#xff0c;普通用户也能使用 1.检查&#xff1a; 通过以下两条命令查看改系统下是否已存在mysql。 ps ajx | grep mysql ps ajx | grep mariadb通过指令如果只显示如下两条信息&#xff0c;则当前系统下不存在MySQL。 就可以直接进…

蓝牙电话之HFP—电话音频

1 媒体音频&#xff1a; 播放蓝牙音乐的数据&#xff0c;这种音频对质量要求高&#xff0c;数据发送有重传机制&#xff0c;从而以l2cap的数据形式走ACL链路。编码方式有&#xff1a;SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式&#xff0c;最基础的编码方式是SBC&#xff0…

手撕二叉树

前序遍历构建二叉树 二叉树的销毁 二叉树的结点个数 二叉树叶子节点个数 二叉树第k层节点个数 二叉树查找值为x的节点 二叉树前序遍历 二叉树中序遍历 二叉树后序遍历 二叉树的层序遍历 判断二叉树是否是完全二叉树 完整代码 test.c #define _CRT_SECURE_NO_WARNINGS 1#incl…

网络防御--防火墙

拓扑 Cloud 1 作为电脑与ENSP的桥梁 防火墙配置 登录防火墙 配置IP地址及安全区域 添加地址对象 配置策略 1、内网可以访问服务器 结果 2、内网可以访问公网 结果 配置NAT策略 结果

注入之SQLMAP(工具注入)

i sqlmap是一个自动化的SQL注入工具&#xff0c;其主要功能是扫描&#xff0c;发现并利用给定的URL和SQL注入漏洞&#xff0c;其广泛的功能和选项包括数据库指纹&#xff0c;枚举&#xff0c;数据库提权&#xff0c;访问目标文件系统&#xff0c;并在获取操作权限时执行任…

【Java 基础篇】Java多线程编程详解:线程创建、同步、线程池与性能优化

Java是一门强大的编程语言&#xff0c;其中最引人注目的特性之一是多线程支持。多线程允许我们在同一程序中同时执行多个任务&#xff0c;这大大提高了应用程序的性能和响应能力。本文将深入介绍Java线程的基础知识&#xff0c;无论您是初学者还是有一些经验的开发人员&#xf…

Qt5开发及实例V2.0-第八章-Qt模型/视图结构

Qt5开发及实例V2.0-第八章-Qt模型/视图结构 第8章 Qt 5模型/视图结构8.1 概述8.1.1 基本概念8.1.2 【实例】&#xff1a;模型/视图类使用 8.2 模型&#xff08;Model&#xff09;8.3 视图&#xff08;View&#xff09;8.4 代理&#xff08;Delegate&#xff09; 本章相关例程源…

2023.9.19 关于 数据链路层 和 DNS 协议 基本知识

目录 数据链路层 MTU DNS 协议 补充 DHCP协议 数据链路层 基本概念&#xff1a; 考虑相邻两个节点之间的传输&#xff08;通过 网线 / 光纤 / 无线 直接相连的两个设备&#xff09;以太网协议 规定了 数据链路层 和 物理层 的内容 IP地址 与 mac地址 的相互配合 IP地址 描…

ardupilot的编译过程

环境 树莓派4b ubuntu20.04 git 2.25.1 python3.8.10 pixhawk2.4.8 下载源码 &#xff08;已经配置好git环境和ssh&#xff09; git clone --recurse-submodules gitgithub.com:ArduPilot/ardupilot.gitcd ardupilotgit status使用git status检查是否下载完整 如果不完整&a…

Nuxt 菜鸟入门学习笔记:路由

文章目录 路由 Routing页面 Pages导航 Navigation路由参数 Route Parameters路由中间件 Route Middleware路由验证 Route Validation Nuxt 官网地址&#xff1a; https://nuxt.com/ 路由 Routing Nuxt 的一个核心功能是文件系统路由器。pages/目录下的每个 Vue 文件都会创建一…

hadoop测试环境sqoop使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Sqoop看这篇文章就够了_must contain $conditions in where clause._SoWhat1412的博客-CSDN博客 大数据环境 C:\Windows\System32\drivers\etc 修改ip和hostname的对应关系 1…

将本地项目上传至Github详解

目录 1 前言2 本地代码上传2.1 命令行方法2.2 图形界面法2.3 结果 1 前言 GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持Git作为唯一的版本库格式进行托管&#xff0c;故名GitHub 。开发者常常将github作为代码管理平台&#xff0c;方便代码存储、版本…

统计物理学复习----热力学的基本规律

General Laws of thermodynamics 热力学系统常识 单位制 1大气压强 101325 Pa 基本概念与专业英语 状态参量 pressurevolumetemperature Extensive quantityIntensive quantityMechanicalVPThermal ST Helmholtz Free EnergyEnthalpyInternal EnergyGibbs Free Energy 准…

ChunJun(OldNameIsFlinkX)

序言 ChunJun主要是基于Flink实时计算框架,封装了不同数据源之间的数据导入与导出功能.我们只需要按照ChunJun的要求提供原始与目标数据源的相关信息给Chunjun,然后它会帮我们生成能运行与Flink上的算子任务执行,这样就避免了我们自己去根据不同的数据源重新编辑读入与读出的方…

模块化开发_php中使用redis

redis 介绍和安装 redis数据库&#xff0c;支持数据持久化&#xff0c;常用与分布式锁&#xff0c;支持事务&#xff0c;持久化&#xff0c;非关心型数据库 区别&#xff1a; 关系型数据库&#xff1a;硬盘&#xff0c;安全&#xff0c;结构简单&#xff0c;易于理解,浪费空间…

Mac环境下jupyter添加nbextension插件

1、没有插件的状态 2、在窗口运行命令 pip install jupyter_contrib_nbextensions 安装成功 3、添加 jupyter contrib nbextension install --user 运行后 报错 No module named notebook.base 更新版本后再添加 pip install jupyter notebook6.1.0 jupyter contrib nb…

vim缓存-交换文件

Catf1agCTF靶场 web swp 题目链接&#xff1a;http://catf1ag.cn/ 个人博客&#xff1a;https://sword-blogs.com/ 题目考点&#xff1a; vim在编辑文档的过程中如果异常退出&#xff0c;会产生缓存文件 vim 交换文件名 参考文章&#xff1a;vim手册 https://yianwillis.…

从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式

本篇文章的内容 一、GCC&#xff08;GUN Compiler Collection&#xff09;1.1 GCC的命令格式1.2 GCC的主要执行步骤1.3 GCC涉及的文件类型 二、ELF简介2.1 ELF文件格式图2.2 ELF文件处理的相关工具2.3 练习 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&…

只需4步使用Redis缓存优化Node.js应用

介绍 通过API获取数据时&#xff0c;会向服务器发出网络请求&#xff0c;收到响应数据。但是&#xff0c;此过程可能非常耗时&#xff0c;并且可能会导致程序响应时间变慢。 我们使用缓存来解决这个问题&#xff0c;客户端程序首先向API发送请求&#xff0c;将返回的数据存储…