谷粒商城实战-25-分布式组件-SpringCloud Alibaba-Nacos配置中心-加载多配置集


这一节介绍如何加载多个配置集。

大多数情况下,我们把配置全部放在一个配置集中即可,但如果配置集非常大,把其拆分为多个配置集更方便管理和维护。

比方说,我们可以把数据库连接相关的信息防止在一个配置集,把Nacos相关的配置放在一个配置集。

一,拆分配置集

把原来配置在一个配置集的配置拆分出来,放在两个配置集。

在这里插入图片描述

二,配置文件中配置多配置集

1,引用多配置集

对于上面两个配置集,要通过下面方式引用。

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=nacos-discovery.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

在这里插入图片描述

  • 通过spring.cloud.nacos.config.ext-config[n].data-id的配置来配置多个DataId 的配置。
  • 通过spring.cloud.nacos.config.ext-config[n].group 的配置来指定dataId所在的组,不明确指定的话使用默认的DEFAULT_GROUP
  • 通过spring.cloud.nacos.config.ext-config[n].refresh 的配置来控制该dataId属性变更时,是否动态刷新加载,默认如果不在DEFAULT_GROUP,自动刷新是关闭的,可以通过置为true来手动开启。

需要特别说明的是,使用多配置集时,如果多个配置集有相同的key,比如都配置了端口server.port,它的优先级关系是 spring.cloud.nacos.config.ext-config[n].data-idn的值越大,优先级越高。

2,验证

首先,重启服务,如果不报错,且能注册到注册中心,说明多配置集的nacos配置起作用了。
在这里插入图片描述

其次,访问有数据库逻辑的接口,如果响应正常,说明多配置集的数据库配置起作用了。

http://localhost:7000/coupon/coupon/list

在这里插入图片描述

三,多配置集总结

1,使用场景

多环境配置:通过 Data ID 与 profile 实现多环境配置,例如在 bootstrap.yml 中配置 spring.cloud.nacos.config.ext-config 来加载不同环境的数据库配置文件 。
配置共享:在多个服务之间可能存在一些共享的配置,通过 Nacos 控制台配置共享 DataId,然后在应用的 bootstrap.propertiesbootstrap.yml 中通过 spring.cloud.nacos.config.shared-dataids 加载这些共享配置 。

2,优先级

有个问题,不得不考虑,如果本地有配置,nacos上有默认配置集,还有多配置集。如果这些配置都配置了相同的key,比如server.port,最终生效的配置属于哪个配置集呢?

spring cloud alibaba nacos config 目前提供了三种配置能力从Nacos拉取相关的配置。

  • ① 通过spring.cloud.nacos.config.shared-datadis 支持多个共享data id的配置。
  • ② 通过spring.cloud.nacos.config.ext-config[n].data-id 的方式支持多个扩展Data Id的配置。
  • ③ 通过内部相关规则(应用名、应用名+profile)自动生成的DataId配置。

优先级是:① < ② < ③ 即,先读取③,再读取②,最后读取①。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 18:36:04       49 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 18:36:04       53 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 18:36:04       42 阅读
  4. Python语言-面向对象

    2024-07-11 18:36:04       53 阅读

热门阅读

  1. Spring-Data-ES-template工具类使用

    2024-07-11 18:36:04       20 阅读
  2. 四种常见的Http请求方式

    2024-07-11 18:36:04       19 阅读
  3. [USACO5.3] 巨大的牛棚Big Barn

    2024-07-11 18:36:04       22 阅读
  4. python杨辉三角的两种书写方式

    2024-07-11 18:36:04       18 阅读
  5. 【Go - 常见的5类循环】

    2024-07-11 18:36:04       23 阅读
  6. 二叉搜索树的最近公共祖先

    2024-07-11 18:36:04       19 阅读
  7. 基于单目摄像头实现的AR多人脸捕捉效果展示

    2024-07-11 18:36:04       16 阅读
  8. git 基本使用

    2024-07-11 18:36:04       19 阅读
  9. 【智能制造-15】常见通讯协议

    2024-07-11 18:36:04       19 阅读
  10. 网络编程学习part1

    2024-07-11 18:36:04       21 阅读
  11. IQN、UUID和SCSI-ID

    2024-07-11 18:36:04       19 阅读
  12. git撤销push

    2024-07-11 18:36:04       16 阅读