Nacos作为配置中⼼时,多个服务共⽤⼀个dataId的配置
写在前⾯
本⽂是对我之前⼀篇⽂章《》的补充。此⽂章中简单写了如何将Nacos作为配置中⼼。在使⽤配置中⼼时,我们会遇到⼀种情况:多个微服务中有相同的配置,在配置中⼼中我们也就希望使⽤同⼀个dataId的配置。本⽂就是说明如何解决这个问题的。
多服务共⽤⼀个dataId
关于dataId,Nacos官⽹是这么解释的:
在 Nacos Spring Cloud 中,dataId的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix默认为spring.application.name的值,也可以通过配置项spring.fig.prefix来配置。
spring.profile.active即为当前环境对应的 profile,详情可以参考。注意:当spring.profile.active为空时,对应的连接符-也将不存
在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension为配置内容的数据格式,可以通过配置项spring.fig.file-extension来配置。⽬前只⽀持properties和yaml类型springcloud和springboot
上⾯的这段写的明⽩,我们可以⽤spring.fig.prefix来替代spring.application.name的值。看到这⾥,⼤家肯定会认为,如果要多个服务共⽤⼀个dataId的配置,我将多个服务的spring.fig.prefix写成⼀样的不就可以了吗?然后兴⾼采烈的去配置⽂件⾥做了这个配置,再启动程序,然后测试,可郁闷的发现,没有起作⽤。。。。。。。。,是不是很伤⼼,官⽅⽂档明明这么写的,却不起作⽤。
之所以没有起作⽤,是因为官⽅⽂档⾥虽然写了⽤spring.fig.prefix配置,但没有写在哪⾥写这个配置,⼤家往往根据经验,写在了application.properties中,不对的,⽂档⾥没写,这个配置是要写在bootstrap.properties中,⼯程中没有这个⽂件?那就⾃⼰新建⼀个,和application.properties在相同路径下。
下⾯是我代码中的配置,我⽤的yaml格式,其他代码,参照《》
server:
port: 7080
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
prefix: chris
file-extension: yaml
application:
name: demo2
Nacos对应的截图为:
上图中,两个箭头所指要注意:配置格式选择了YAML,配置内容就要按照YAML格式来写,配置格式选择了Properties,配置内容要按照Properties来写,不要搞错了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。