栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

bootstart.yml配置的Nacos 配置中心 配置A命名空间,却使用B命名空间 问题。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

bootstart.yml配置的Nacos 配置中心 配置A命名空间,却使用B命名空间 问题。

最近碰到一个有意思的问题,本人被公司分配到一个新的项目上,正好处于框架整合Nacos 配置中心的阶段,因为刚学习完,自信心异常膨胀。突然又遇到问题,导致信心崩盘,随后找到问题,快速又一次建立膨胀的信心。
叙述问题,目前涉及开发环境和测试环境。首先看一下项目的配置文件。

这个是我bootstrap.yml的信息

再看一下我的test的配置文件

这里是我的服务器Nacos的命名空间

当我打包发布到测试环境之后,我发现程序读取的Nacos的配置中心,文件是aa-aa命名空间的配置文件。具体怎么发现,是因为, 我在xx-xx空间下加了几个自定义的配置信息,没有在aa-aa空间下加入自定义配置。在程序中通过@Value注解读取,因为读取到配置中心中没有配置对应的信息,所以导致jar包运行失败。
问题叙述完毕。

解决问题思路:
1、检查jar包中的配置文件是不是在bootstrap.yml 文件下指定错了

spring:
  profiles:
    active: test

可以通过vim xxx.jar包查看。我这边发现bootstrap.yml 没有指定错误。
2、继续检查jar包中bootstrap-test.yml 是不是命名空间 server-addr 和namespace 配置错误。

server-addr: xx.xx.xx.xx:8848 #Nacos服务注册中心地址
namespace: xx-xx

显然发现不是这个问题。

3、最后反复思考,根据请教老师提供的资料。突然想到是不是因为优先级问题导致的。
因为,我这边配置是没有问题的。
发现代码里没有任何的配置,紧接着继续思考,突然想到,在环境中启动jar包,是通过.sh文件启动的。
是不是因为启动文件配置中指定了,配置文件信息。从而覆盖掉了,我配置文件中的配置信息。结果发现,问题果然是这样,在.sh文件启动命令中

--spring.cloud.nacos.config.server-addr=xx.xx.xx.xx:8848 
--spring.cloud.nacos.config.namespace=aa-aa 

发现有这两个命令。
自此疑惑真相大白。
来一个槽点:
关于配置文件的优先级覆盖流程作者还在整理实验。希望后续我能整理出来。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号