亲宝软件园·资讯

展开

Nacos配置的多文件加载与共享配置方式

翟永超 人气:0

Nacos配置的多文件加载与共享配置

思考一个问题,现实开发中会遇到这样一个场景,我们把应用拆分成到多个配置文件中,那么Nacos怎么管理多个配置文件?

加载多个配置

我们已经知道Spring应用对Nacos中配置内容的对应关系是通过下面三个参数控制的:

默认情况下,我们使用的方式:Data ID=${spring.application.name}.properties Group=DEFAULT_GROUP的配置。

例如:现在有这样需求:我们想要对所有应用的Actuator模块以及日志输出做统一的配置管理。

最简单的实现方式应用相关配置Actuator.properties,日志log.properties 。我们通过拆分这两类的配置,现在需要将其共享

第一步:

在Nacos中创建Data ID=actuator.propertiesGroup=DEFAULT_GROUPData ID=log.propertiesGroup=DEFAULT_GROUP的配置内容。

配置文件

第二步:

在Spring Cloud应用中通过使用spring.cloud.nacos.config.ext-config参数来配置要加载的这两个配置内容,比如:

spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[1].refresh=true

可以看到:

共享配置

通过上述的加载集合的方式实际上已经可以做到共享配置文件了。Nacos中还提供了另外一个便捷的配置方式

spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties

配置加载的优先级

当我们加载多个配置的时候,如果存在相同的key时,我们需要深入了解配置加载的优先级关系。

在使用Nacos配置的时候,主要有以下三类配置:

要弄清楚这几个配置加载的顺序,我们把这几个配置加到应用上,观察日志

spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.shared-dataids=log.properties
spring.cloud.nacos.config.refreshable-dataids=log.properties

加载顺序

我们通过日志可以看到加载顺序:A < B < C

参考资料:Nacos官方文档

无法加载nacos配置中心的配置

在bootstrap.properties文件中对于nacos的地址配的有问题,由于idea的提示没仔细看应该配nacos的config地址,而不是discovery地址,虽然只有一点差距,但是检查起来真难

spring.cloud.nacos.config.server-addr=

写成了

spring.cloud.nacos.discovery.server-addr=

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

加载全部内容

相关教程
猜你喜欢
用户评论