网站维护的作用,甘肃省建设工程168网站,整个网站与网站模板的区别,ftp发布asp.net网站一、前言
Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置#xff1a;
A#xff1a;通过内部相关规则(应用名、扩展名、profiles)自动生成相关的 Data Id 配置B#xff1a;通过 spring.cloud.nacos.config.extension-configs的方式支持…一、前言
Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置
A通过内部相关规则(应用名、扩展名、profiles)自动生成相关的 Data Id 配置B通过 spring.cloud.nacos.config.extension-configs的方式支持多个扩展 Data Id 的配置C通过 spring.cloud.nacos.config.shared-configs支持多个共享 Data Id 的配置 结论当三种方式共同使用时他们的一个配置优先级关系是A B C 对于shared-configs、extension-configs的内部类Config 只有 dataId、group、refresh三个属性完全不支持namespace配置配置拉取所需的namespace参数来自spring.cloud.nacos.config.namespace配置。 二、准备条件
基于上篇文章Spring Cloud融合Nacos实现服务配置中心 | Spring Cloud 7为基础进行扩展。
三、nacos 多配置文件
3.1 配置展示
src/main/resources/bootstrap.yml
server:port: 3001spring:profiles:active: devapplication:name: artifactIdcloud:nacos:username: nacos.usernamepassword: nacos.passwordconfig:server-addr: 192.168.0.31:8848prefix: artifactIdfile-extension: yamlnamespace: public# 用于共享的配置文件shared-configs:- data-id: common‐mysql.yamlgroup: DEFAULT_GROUP- data-id: common‐redis.yamlgroup: DEFAULT_GROUP- data-id: common‐base.yamlgroup: DEFAULT_GROUP# 用于扩展的配置文件# extension-configs 优先级大于 shared-configs在 shared-configs 之后加载extension-configs:- data-id: artifactId-advanced.yamlgroup: DEFAULT_GROUPrefresh: true- data-id: artifactId-base.yamlgroup: DEFAULT_GROUPrefresh: trueconfig:name: bootstrap3.2 加载优先级 A通过内部相关规则(应用名、扩展名、profiles)自动生成相关的 Data Id 配置优先级最高 B扩展配置(extension-configs) 共享配置(shared-configs) C同为扩展配置存在如下优先级关系extension-configs[3] extension-configs[2] extension-configs[1] extension-configs[0] D同为共享配置存在如下优先级关系shared-configs[3] shared-configs[2] shared-configs[1] shared-configs[0]
3.3 关于refresh配置
扩展配置(extension-configs) 共享配置(shared-configs)中配置动态刷新需主要事项
Data Id 在默认的组 DEFAULT_GROUP未配置refresh属性或配置refresh: false不支持配置的动态刷新Data Id 在默认的组 DEFAULT_GROUP配置refresh: true支持动态刷新Data Id 不在默认的组未配置refresh属性或配置refresh: false不支持配置的动态刷新Data Id 不在默认的组配置refresh: true支持动态刷新
四、测试
启动服务前nacos服务端完整配置列表如下 启动服务查看获取的config.name属性 证明 3.2章节结论A正确 在nacos服务端中删除nacos-config.yaml、nacos-config-dev.yaml配置查看获取的config.name属性 证明 3.2章节结论B、C正确 在nacos服务端中删除nacos-config-base.yaml、nacos-config-advanced.yaml配置查看获取的config.name属性 证明 3.2章节结论D正确