目录

一、加载顺序与优先级

1. 示例配置

2. 配置文件分类

3. 加载顺序

4. 优先级

二、本地配置优先的设置

结论


在微服务架构中,合理地管理和理解配置文件的加载顺序与优先级对于确保应用的稳定性和灵活性至关重要。特别是在使用 Spring Cloud Alibaba Nacos 作为配置中心的场景下,这一点显得尤为重要。本文将基于一个具体的 bootstrap.yml 配置示例,深入探讨这些概念,并介绍如何通过 Nacos 配置实现本地配置的优先级设置。

一、加载顺序与优先级

1. 示例配置

首先,我们看一下示例的 bootstrap.yml 配置:

spring:
  application:
    name: content-api
  cloud:
    nacos:
      server-addr: 192.168.101.65:8848
      discovery:
        namespace: dev
        group: xuecheng-plus-project
      config:
        namespace: dev
        group: xuecheng-plus-project
        file-extension: yaml
        refresh-enabled: true
        extension-configs:
          - data-id: content-service-${spring.profiles.active}.yaml
            group: xuecheng-plus-project
            refresh: true
        shared-configs:
          - data-id: swagger-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true
          - data-id: logging-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true
  profiles:
    active: dev
2. 配置文件分类

在 Spring Cloud Alibaba Nacos 环境中,我们主要遇到以下类型的配置文件:

本地配置文件:

  • bootstrap.yml / bootstrap.yaml
  • application.yml / application.yaml

Nacos 配置中心的配置文件:

  • 共享配置文件 (shared-configs)
  • 扩展配置文件 (extension-configs)
3. 加载顺序
  1. bootstrap.yml / bootstrap.yaml:首先加载,用于配置应用的启动环境。
  2. Nacos 配置中心的配置文件:
    先加载 共享配置文件 (shared-configs)
    然后是 扩展配置文件 (extension-configs)
    最后是 项目应用名配置文件 (${spring.application.name}.yaml / .properties)
  3. application.yml / application.yaml:在 Nacos 配置加载之后。
4. 优先级
  1. 项目应用名配置文件:具有最高优先级。
  2. 扩展配置文件:次之,覆盖共享配置。
  3. 共享配置文件:优先级低于扩展配置。
  4. 本地 application.yml / application.yaml:优先级低于所有从 Nacos 加载的配置。
  5. 本地 bootstrap.yml / bootstrap.yaml:优先级最低。

相同的配置,优先级高的会覆盖优先级低的bootstrap是作为spring cloud的上下文配置加载的,一般配置nacos和config的注册中心数据,不配置其他数据,配置了其他数据也可能会被覆盖,而nacos和config相关数据则不会被覆盖。

二、本地配置优先的设置

在 Nacos 中,可以通过特定的配置来设置本地配置优先。这可以在 bootstrap.yml 或 application.yml 文件中设置:

spring:
  cloud:
    config:
      override-none: true

当 override-none 设置为 true 时,本地配置文件 (application.yml / application.yaml) 将具有最高的优先级,即使这些配置在 Nacos 中也有定义。这种设置适用于需要在不同环境中覆盖远程配置中心配置的场景。

结论

了解和正确应用 Spring Cloud Alibaba Nacos 中配置文件的加载顺序和优先级,对于确保微服务的正确运行至关重要。此外,通过配置 override-none 为 true,可以灵活地实现本地配置优先的需求,进一步增强了配置管理的灵活性。这些特性使得 Spring Cloud Alibaba Nacos 成为管理微服务配置的强大工具。

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/m0_51390969/article/details/135947989

GitHub 加速计划 / na / nacos
29.83 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16 * Support custom client configuration timeout.(#12748) * Add UT.(#12748) 12 天前
b04d2266 16 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐