今天在进行nacos配置搭建的时候遇到个异常
这个异常显示没有拉取到log的配置
1.我的配置
首先进行nacos的共享配置如下
在本地进行拉取共享配置的配置如下:
spring cloud nacos server-addr 192.168.138.1008848 config file-extension yaml shared-configs#共享配置 data-id shared-jdbc data-id shared-log data-id shared-swagger
然后运行服务会发现报上面的错误表示无法拉取到log的共享配置
2.原因
由于我配置了file-extension: yaml,也就是说服务在拉取远程的过程是:
1.初始化Nacos客户端:当应用启动时,Nacos客户端初始化并将server-addr配置中的地址作为Nacos服务器的位置。
2.确定文件扩展名:file-extension属性被设置为yaml,这意味着所有配置文件都将被假定为.yaml格式,除非data-id中明确指定了不同的扩展名。
3.注册共享配置:在shared-configs列表中,有三个data-id被指定,分别是shared-jdbc、shared-log和shared-swagger。由于file-extension被设定为yaml,所以Nacos客户端将会尝试从 Nacos服务器上拉取shared-jdbc.yaml、shared-log.yaml和shared-swagger.yaml这三个配置文件。
5.拉取配置:Nacos客户端会向Nacos服务器发送请求,请求shared-jdbc.yaml、shared-log.yaml和shared-swagger.yaml配置文件的内容。
所以,当我在使用该本地配置去拉取nacos的共享配置时,他想要拉取的是shared-jdbc.yaml、shared-log.yaml和shared-swagger.yaml这三个配置文件配置,而我在nacos中这三个共享配置的data-id是没有yaml后缀的,导致无法匹配也无法拉取到想要的共享配置
3.修改配置
为了验证下这个问题,我修改了下我的nacos配置:
在nacos配置中,我将其中两个共享配置的data-id添加上了yaml后缀,而jdbc的配置没有,如果启动服务没有拉取到jdcb共享配置则表示验证成功
开启服务报错如下:
所以,希望各位小伙伴们在进行nacos配置的时候一定要在data-id中添加上yaml的后缀哟!