Nacos配置中心

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部
化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您
可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端
和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特
殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序从开发到测试再到
生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的
所有内容。
1.Nacos 加载配置的时候,不仅加载以 dataId 为
${spring.application.name}.${file-extension:properties} 为前缀的基础配置,还
加载 dataId 为 ${spring.application.name}-${profile}.${file-extension:properties}
的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过 Spring
提供的 ${spring.profiles.active} 这个配置项来配置。
Note: ${spring.profiles.active} 当 通 过 配 置 文 件 来 指 定 时 必 须 放 在
bootstrap.properties 文件中。
Nacos配置中心_第1张图片

Nacos配置中心_第2张图片 

2. 一个微服务可以通过 自定义扩展 Data Id extension-configs 的方式来支持配
置文件的分割
Nacos配置中心_第3张图片

Note:多个 Data Id 同时配置时,他的优先级关系是

spring.cloud.nacos.config.extension-configs[n].data-id 其中 n 的值越大,优先
级越高。
Note: spring.cloud.nacos.config.extension-configs[n].data-id 的值必须带文件
扩展名,文件扩展名既可支持 properties,又可以支持 yaml/yml。 此时
spring.cloud.nacos.config.file-extension 的配置对自定义扩展配置的 Data Id 文
件扩展名没有影响。
3. Nacos 配置中心可以通过 自定义扩展 Data Id 配置和 shared-configs 来共享
架基础的配置项,这样我们可以把具体微服务不经常修改的配置项统一存放在
PUBLIC_GROUP 下的 public.properties 配置文件,而需要按项目修改的配置项
则放到微服务名一致的配置文件下。如果具体的微服务需要修改框架的基础配
置项,则只需要在自己的配置文件中添加该配置项以此覆盖配置项的值,且这
个修改不影响公共配置文件的默认值
4. 配置优先级, Nacos Config 目前提供三种配置能力从 Nacos 拉取相关的配置
A: 通过 spring.cloud.nacos.config.shared-configs[n].data-id 支持多个共享
Data Id 的配置
B: 通过 spring.cloud.nacos.config.extension-configs[n].data-id 的方式支持
多个扩展 Data Id 的配置
C: 通过内部相关规则(应用名/应用名+Profile )自动生成相关的 Data Id 配置
当三种方式共同使用时,他们的一个优先级关系是:A < B < C
5. Nacos 支持配置的动态更新,配置项自动刷新即 Nacos 服务端修改配置项之后
客户端不重启即可自动刷新配置项的值。
Nacos 实现配置的动态刷新主要是靠客户端的长轮询去请求服务端获取更新的
配置,在通过 Spring 的 ApplicationContext.publishEvent()发布事件的方式去刷
新容器。
通过@Value 注入的变量动态刷新需要所在类上添加注解@RefreshScope,其
他方式如 ConfigurationProperties 或 environment.getProperty("")可以直接获取
到最新的配置值。

 

 

 

你可能感兴趣的:(spring,cloud,java,spring)