多配置文件读取
在实际的开发工作中,存在多个微服务共用一些配置的情况,如某几个服务共用一份 MySQL
、Redis
、Elastic Search
中间件的连接配置,或者某几个服务共享同一份业务规则的配置。在这种情况下就可以将部分配置分离,在 Nacos
控制台中创建多个配置文件,不需要在每个微服务中单独管理通用配置。在之前的编码演示中都只创建了一个配置文件,接下来笔者将演示如何读取 Nacos
配置中心里的多个配置文件。
extension-configs配置项简介
Nacos
配置中心可以通过指定不同的 Data ID
读取多个配置文件,每个 Data ID
对应一个配置文件,可以通过配置中心的 API
读取对应的配置内容。在实际编码时,在 bootstrap
配置文件中增加 extension-configs
配置项对 Nacos
配置中心的多个配置文件进行配置和读取。extension-configs
是一个扩展配置功能,允许用户在 Nacos
配置中心里存储额外的配置信息,并且可以通过插件的形式扩展配置的加载和解析,这样能够更方便地管理应用程序的配置信息。在实际编码时增加的代码如下。
properties
格式配置文件的写法如下:
spring.cloud.nacos.config.extension-configs[0].data-id=xxx-config.properties
spring.cloud.nacos.config.extension-configs[0].group=xx_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=xxx--xxx-config.properties
spring.cloud.nacos.config.extension-configs[1].group=xx_GROUP
spring.cloud.nacos.config.extension-configs[1].refresh=true
yml
格式配置文件的写法如下:
extension-configs:
- dataId: xxx-config.yml
group: xx_GROUP
refresh: true
- dataId: xxx-xxx-config.yml
group: xx_GROUP
refresh: true
extension-configs
中配置的是一个链表的结构,每个节点都有 dataId
、group
和 refresh
三个属性,分别代表读取的配置文件名称、分组、是否需要动态刷新。
在配置中心创建多个配置文件
打开浏览器并进入 Nacos
控制台页面,新建 switch-config.properties
配置,如图 6-36 所示。

在 “新建配置” 页面中,笔者指定了 Data ID
为 switch-config.properties
、Group
为自定义分组 COMMON_GROUP
、配置格式为 Properties
。在 “配置内容” 文本框中,笔者将活动开关变量从 newbee-cloud-config-service-dev.properties
中分离出来并放入该配置文件。之后创建 redis-config.properties
配置,由于只是功能演示,因此该配置中并未添加任何内容。
最终的配置列表如图 6-37 所示。

在代码中增加多配置读取的配置及功能验证
打开项目中的 bootstrap.application
文件,新增如下代码:
spring.cloud.nacos.config.extension-configs[0].dataId=switch-config.properties
spring.cloud.nacos.config.extension-configs[0].group=COMMON_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].dataId=redis-config.properties
spring.cloud.nacos.config.extension-configs[1].group=COMMON_GROUP
spring.cloud.nacos.config.extension-configs[1].refresh=true
本项目在启动后除读取 newbee-cloud-config-service-dev.properties
配置外,还会额外读取 switch-config.properties
和 redis-config.properties
配置。
一切设置妥当之后,就可以启动应用程序进行功能验证了。
启动 nacos-config-demo
项目(需保证 Nacos Server
和 MySQL Server 已经正常运行)。若启动过程中没有报错,则启动日志如下:

可以看到在项目启动过程中,会拉取 Nacos
配置中心的多个配置文件。
接下来,在 Nacos
控制台中修改 switch-config.properties
中的配置内容。修改后也能够正常监听,日志如下:

到这里,功能验证的结果就出来了,对 Nacos
配置中心里的多配置文件读取功能编码完成。