nacos无法读取配置问题
-
问题描述
-
在nacos使用配置中心配置相关属性
-
在服务中添加bootstrap.yml
-
服务启动时,无论如何都无法读取到nacos配置中心里配置的信息,并且报错
-
-
解决方法
由于在使用命名空间的时候,没有手动设置命名空间id造成的。如果我们不去设置命名空间id,默认会给一个随机的命名空间id。在创建命名空间的时候,将命名空间id设置成跟命名空间名字一致(dev),即可解决上述问题!
-
源码分析(基于com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2.2.5.RELEASE)
-
NacosFactory根据配置属性创建ConfigService(NacosConfigService的父接口)
-
NacosPropertySourceBuilder读取加载配置中心的配置内容
-
NacosConfigService读取配置配置中心的配置内容,将namespace赋值给tenant
-
通过源码可看出,通过Http请求nacos服务时,传递的tenant请求参数值为namespace: dev。然而查看了数据库,发现数据库里存放的tenant值为一个nacos生成的随机数。这个随机数就是namespace的namespaceId
-