解决Springboot获取不到nacos配置中心的配置问题

 更新时间:2023年09月01日 10:42:02   作者:今天晩上去偷蛋  
由于项目使用的nacos老版本,存在风险bug, 需要将nacos升级至2.2.1及以上版本,版本升级完毕之后 启动项目发现项目开始报错,所以本文记录一下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配置的资料请关注脚本之家其它相关文章!

相关文章

  • 详析Spring中依赖注入的三种方式

    详析Spring中依赖注入的三种方式

    在开发的过程中突然对Spring的依赖注入几种方式出现混交,打算做个简单的小结,方便大家和自己以后参考借鉴,如有总结不对的地方,请大家不吝指教!下面来一起看看吧。
    2016-09-09
  • 浅谈Java slf4j日志简单理解

    浅谈Java slf4j日志简单理解

    这篇文章主要介绍了浅谈Java日志简单理解,详细的介绍了slf4j的概念和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 鸿蒙PC上搭建多语言开发环境Java/Python/Go/Rust配置完全指南

    鸿蒙PC上搭建多语言开发环境Java/Python/Go/Rust配置完全指南

    对于鸿蒙开发者而言,一个正确配置的开发环境是所有后续工作的基石,下面这篇文章主要介绍了鸿蒙PC上搭建多语言开发环境Java/Python/Go/Rust配置的相关资料,需要的朋友可以参考下
    2026-05-05
  • Java仿文库的基本方法(openoffice+swftools+flexPaper)

    Java仿文库的基本方法(openoffice+swftools+flexPaper)

    这篇文章主要为大家详细介绍了Java仿文库的基本方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Java中字符串的一些常见方法分享

    Java中字符串的一些常见方法分享

    这篇文章主要介绍了Java中字符串的一些常见方法,需要的朋友可以参考下
    2014-02-02
  • 如何替换springboot打好jar包中的class文件

    如何替换springboot打好jar包中的class文件

    本文介绍了在Spring Boot项目中打包成jar包后,临时替换class文件的三种方法:解压-替换-重新打包、使用jar命令直接替换class、使用zip命令替换jar包
    2025-12-12
  • Spring使用@Filter注解创建自定义过滤器

    Spring使用@Filter注解创建自定义过滤器

    Spring 中鲜为人知但非常有用的注解之一是 @Filter,它支持自定义过滤器,下面我们就来深入研究一下如何使用 Spring 的 @Filter 注解来创建自定义过滤器吧
    2023-11-11
  • Springboot主配置文件解析

    Springboot主配置文件解析

    Spring Boot主配置文件application.yml支持多种核心值类型,包括字符串、数字、布尔值等,文章详细介绍了Profile环境配置和加载位置,本文给大家详细介绍Springboot主配置文件,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • MybatisPlus查询条件空字符串和NULL问题背景分析

    MybatisPlus查询条件空字符串和NULL问题背景分析

    文章详细分析了MybatisPlus在处理查询条件时,空字符串和NULL值的问题,MP 3.3.0及以上版本提供了多种解决方法,包括在Bean属性上使用注解、全局配置等,推荐使用全局配置的方式来解决这个问题,以避免在SQL查询中出现不必要的空字符串条件,感兴趣的朋友跟随小编一起看看吧
    2025-03-03
  • IntelliJ IDEA 编辑器的全局搜索中使用正则表达式的操作方法

    IntelliJ IDEA 编辑器的全局搜索中使用正则表达式的操作方法

    这篇文章主要介绍了IntelliJ IDEA 编辑器的全局搜索中使用正则表达式的相关知识,补充介绍了IDEA查找和替换实用正则,感兴趣的朋友跟随小编一起看看吧
    2024-01-01

最新评论