解决Springboot获取不到nacos配置中心的配置问题
记录一下Springboot获取不到nacos配置中心的配置问题
由于项目使用的nacos老版本,存在风险bug, 需要将nacos升级至2.2.1及以上版本,版本升级完毕之后 启动项目发现项目开始报错,提示dynamic-datasource can not find primary datasource

但是我明明在nacos中已经配置了数据源,还会出现这样的问题, 下意识觉得可能是没有读取到nacos的配置文件

nacos配置中心主要是在这个NacosConfigService的这个类下面。该接口下面主要有一些获取配置,发布配置,增加监听器,删除配置,删除监听器等操作

首先在NacosPropertySourceBuilder下的loadNacosData方法中打上断点发现this.configService.getConfig返回的data为空, 侧面证明了确实没有读取到nacos中的配置信息

通过getConfig这个方法向下追踪,在NacosConfigService的getConfigInner方法里面,就是具体的拉取配置的实现,nacos首先是通过LocalConfigInfoProcessor.getFailover的方法获取本地的配置, 当本地配置返回空时才会去获取nacos客户端的配置,而this.worker.getServerConfig这个方法,就是进行获取远端的配置信息, 通过断点发现response的返回也是空的,那么我继续下沉追踪到getServerConfig中

下沉到queryConfig方法时发现了问题,通过ConfigQueryRequest.build方法生成的ConfigQueryRequest请求, 在返回时竟然返回ErrorCode:300, message 为 config data not exist, 这就是表示我传递三个参数, dataId, group, tenant 出现了问题

再回去nacos中反复检查确定dataId和group没问题的情况下, 那么就只剩下最后一个出现问题的参数了,那就是tenant, 在项目的配置文件bootstrap-dev.yml中, namespace输入的是命名空间的名称,而非命名空间的id,导入项目获取失败
最终通过修改namespace的值改名字为id, 成功启动, 问题不大,还是因为对nacos的掌握不熟练而导致的

以上就是解决Springboot获取不到nacos配置中心的配置问题的详细内容,更多关于Springboot获取不到nacos配置的资料请关注脚本之家其它相关文章!
相关文章
鸿蒙PC上搭建多语言开发环境Java/Python/Go/Rust配置完全指南
对于鸿蒙开发者而言,一个正确配置的开发环境是所有后续工作的基石,下面这篇文章主要介绍了鸿蒙PC上搭建多语言开发环境Java/Python/Go/Rust配置的相关资料,需要的朋友可以参考下2026-05-05
Java仿文库的基本方法(openoffice+swftools+flexPaper)
这篇文章主要为大家详细介绍了Java仿文库的基本方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-02-02
MybatisPlus查询条件空字符串和NULL问题背景分析
文章详细分析了MybatisPlus在处理查询条件时,空字符串和NULL值的问题,MP 3.3.0及以上版本提供了多种解决方法,包括在Bean属性上使用注解、全局配置等,推荐使用全局配置的方式来解决这个问题,以避免在SQL查询中出现不必要的空字符串条件,感兴趣的朋友跟随小编一起看看吧2025-03-03
IntelliJ IDEA 编辑器的全局搜索中使用正则表达式的操作方法
这篇文章主要介绍了IntelliJ IDEA 编辑器的全局搜索中使用正则表达式的相关知识,补充介绍了IDEA查找和替换实用正则,感兴趣的朋友跟随小编一起看看吧2024-01-01


最新评论