Nacos扩展配置(4)
通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profiles.active} . ${file-extension} 默认Group为public的配置文件,并且可以通过下面三个参数指定修改默认的配置文件:
- spring.cloud.nacos.config.prefix
- spring.cloud.nacos.config.file-extension
- spring.profiles.active
有时候一个模块项目需要多个配置文件,这时候我们就可以使用nacos的扩展配置参数(extended configurations)引用同一个namesapce下面更多的配置文件。
第一步:创建多个配置文件。我们在默认的namespace下创建了三个配置文件,其中nacos-consumer.properties配置在默认的组DEFAULT_GROUP,database.properties和log.properties则配置在Group_A组里。
- database.properties配置内容是:database.url=127.0.0.1
- log.properties配置配置内容是:log.data=/home/logs
- consumer.properties配置配置内容是:config.address=zhengzhou
第二步:应用引入nacos注册中心,加载多个配置文件。
<!--注册中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
spring: profiles: active: dev application: name: nacos-provider cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #注册中心地址 config: server-addr: 127.0.0.1:8848 #配置中心地址 file-extension: yml #配置文件格式 namespace: #命名空间 group: #项目 extension-configs[0]: data-id: file.yaml group: DEFAULT_GROUP # 默认为DEFAULT_GROUP refresh: true # 是否动态刷新,默认为false extension-configs[1]: data-id: file.yaml group: DEFAULT_GROUP refresh: true server: port: 9090
extension-configs配置是一个数组List类型,每个配置中包含三个参数:data-id、group,refresh。其中refresh参数用于控制这个配置文件中的内容时候是否支持自动刷新,默认情况下,只有默认加载的配置才会自动刷新,对于这些扩展的配置加载内容需要配置该设置时候才会实现自动刷新。
共享配置(shared configurations)
上面的扩展配置实际上是一种namesapce下的共享配置,根据上一篇文章环境隔离的经典案例划分,就是一种企业内各项目之间的共享配置。有时候我们希望有些配置文件只在同一个项目下的不同的环境之间共享(实际上是一种group下的共享配置),这时候就可以使用Nacos的共享配置(shared configurations)去实现。
配置的文件的加载顺序:
1、先加载shared-dataids配置
2、再加载ext-config配置
3、最后加载默认配置
注意:后面加载的会覆盖前面加载的文件。