nacos无法读取配置问题

nacos无法读取配置问题

  • 问题描述

    1. 在nacos使用配置中心配置相关属性


      nacos配置中心
    1. 在服务中添加bootstrap.yml


      bootstrap.yml.png
    1. 服务启动时,无论如何都无法读取到nacos配置中心里配置的信息,并且报错


      启动异常日志.png
  • 解决方法
    由于在使用命名空间的时候,没有手动设置命名空间id造成的。如果我们不去设置命名空间id,默认会给一个随机的命名空间id。在创建命名空间的时候,将命名空间id设置成跟命名空间名字一致(dev),即可解决上述问题!

    命名空间创建

  • 源码分析(基于com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2.2.5.RELEASE)

    1. NacosFactory根据配置属性创建ConfigService(NacosConfigService的父接口)


      NacosFactory.java
    2. NacosPropertySourceBuilder读取加载配置中心的配置内容


      image.png
    3. NacosConfigService读取配置配置中心的配置内容,将namespace赋值给tenant


      image.png
    NacosConfigService.png
    ClientWorker.java
    1. 通过源码可看出,通过Http请求nacos服务时,传递的tenant请求参数值为namespace: dev。然而查看了数据库,发现数据库里存放的tenant值为一个nacos生成的随机数。这个随机数就是namespace的namespaceId


      数据库存放的配置数据信息.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容