SpringCloud + Nacos配置文件加载顺序和优先级详解

这篇具有很好参考价值的文章主要介绍了SpringCloud + Nacos配置文件加载顺序和优先级详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在微服务架构中,合理地管理和理解配置文件的加载顺序与优先级对于确保应用的稳定性和灵活性至关重要。特别是在使用 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 环境中,我们主要遇到以下类型的配置文件:

  1. 本地配置文件

    • bootstrap.yml / bootstrap.yaml
    • application.yml / application.yaml
  2. Nacos 配置中心的配置文件

    • 共享配置文件 (shared-configs)
    • 扩展配置文件 (extension-configs)
    • 项目应用名配置文件 (${spring.application.name}.yaml / .properties)

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:优先级最低。

二、本地配置优先的设置

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

spring:
  cloud:
    config:
      override-none: true

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

结论

了解和正确应用 Spring Cloud Alibaba Nacos 中配置文件的加载顺序和优先级,对于确保微服务的正确运行至关重要。此外,通过配置 override-nonetrue,可以灵活地实现本地配置优先的需求,进一步增强了配置管理的灵活性。这些特性使得 Spring Cloud Alibaba Nacos 成为管理微服务配置的强大工具。
nacos设置本地优先级更高,SpringCloud,# Nacos,spring cloud,java,后端,spring boot文章来源地址https://www.toymoban.com/news/detail-843721.html

到了这里,关于SpringCloud + Nacos配置文件加载顺序和优先级详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用nacos配置中心管理配置文件时,springcloud程序启动报错,无法找到对应的配置文件(加载到了错误的配置文件)

    1、将SpringBoot项目升级为SpringCloud 2、SpringBoot版本从 2.1.3.RELEASE 升级为 2.7.8 3、不使用Nacos配置中心,而是加载本地配置文件时,程序启动正常 4、使用Nacos配置中心,加载到了错误的配置文件,导致程序启动失败 1、 bootstrap.yml 配置 2、查看Nacos配置中心 2.1、 group 和 namespace 都没

    2024年02月04日
    浏览(60)
  • springboot 配置文件优先级

    springboot配置文件可以使用properties、yaml,一个系统中最好只使用一种格式,如果在同一个位置使用了properties、yaml,那么properties会覆盖yaml,个人推荐使用yaml,支持结构化,层次更清晰。 如果系统中有application.yml,application-specific.yml,jar包外也有application.yml,application-specif

    2024年02月13日
    浏览(36)
  • SpringBoot启动过程探究及配置文件优先级解析

    如果项目依赖中存在org.springframework.web.reactive.DispatcherHandler,并且不存在org.springframework.web.servlet.DispatcherServlet,那么应用类型为WebApplicationType.REACTIVE 如果项目依赖中不存在org.springframework.web.reactive.DispatcherHandler,也不存在org.springframework.web.servlet.DispatcherServlet,那么应用类型为

    2024年02月09日
    浏览(44)
  • SpringBoot及Nacos配置中心加载顺序及覆盖生效关系

    目录 一、测试环境版本 二、测试结果 1、标准的SpringBoot应用 2、含有Nacos配置中心的SpringBoot应用 spring-boot-starter-parent  2.7.10 spring-cloud-starter-bootstrap  3.1.6 spring-cloud-starter-alibaba-nacos-config  2021.0.4.0 nacos-client 2.1.1 nacos服务端 2.2.1 1、标准的SpringBoot应用 在标准的SpringBoot应用中,

    2024年02月08日
    浏览(39)
  • [ubuntu]动态库加载优先级

    默认库加载路径,如:/lib 和/usr/lib ldconfig指定加载路径:通过配置文件 /etc/ld.so.conf 中指定动态库搜索路径 编译指定加载路径:在编译目标代码时指定该程序的动态库搜索路径,通过 gcc 的参数 “-Wl,-rpath,” 环境变量指定加载路径:通过环境变量 LD_LIBRARY_PATH 指定动态库搜索

    2024年02月15日
    浏览(36)
  • 【数据结构与算法】03 队列(顺序队列--循环队列--优先级队列--链队列)

    队列( queue )是一种常见的数据结构,它遵循先进先出(FIFO)的原则。队列可以理解为一个具有两个端点的线性数据结构,其中一个端点称为\\\"队尾\\\"(rear),用于插入新元素,另一个端点称为\\\"队首\\\"(front),用于移除元素。新元素被插入到队尾,而最早插入的元素总是在队

    2024年02月08日
    浏览(55)
  • Springcloud微服务之Nacos入门 服务分级存储模型 同集群优先的负载均衡 权重配置 环境隔离 Nacos与Eureka的区别 AP 和CP

    Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。 主要差异在

    2024年04月15日
    浏览(34)
  • nacos配置文件bootstrap.yml springcloud

    bootstrap.yml配置 nginx配置 在bootstrap.yml中配置的nacos地址 server-addr: nacos:80 ,之所以可以访问的到,是因为nginx做了映射。还需要在host文件中配置nacos这个字母映射到装nacos那台服务器的ip,即: 110.10.52.77 nacos 这样就可以直接用nacos这个字母访问远程的ip。 Nacos系列(10)-Nacos开启s

    2024年02月11日
    浏览(43)
  • SpringBoot配置文件的加载顺序

    一、引言 如果我们了解SpringBoot配置文件的加载顺序,对项目的开发和部署会有很大的帮助。举个工作中的例子,我们的项目是微服务架构模式,用Nacos做注册中心(可以配置每个微服务),所有服务请求需要通过网关,由网关做统一的鉴权和路由转发。环境有三套,本地环境

    2024年02月02日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包