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的掌握不熟练而导致的

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值