0


SpringCloud + Nacos配置文件优先级详解以及本地配置覆盖远程方法

    想要知道配置文件优先级首先要知道配置文件有多少种:

本地配置文件:

    bootstrap.yml、application.yml、application-{profile}.yml

远程配置文件:

    shared-configs(共享配置文件)、extension-configs(扩展配置文件)、${spring.application.name}.yaml(项目名配置文件)、${spring.application.name}-{profile}.yaml(项目名环境配置)

配置文件的优先级从上到下,优先级最高的是项目名环境配置,最低的是bootstrap.yml。总体上远程配置文件高于本地配置文件。

${spring.application.name}-{profile}.yaml(项目名环境配置)

${spring.application.name}.yaml(项目名配置文件)

extension-configs(扩展配置文件)

shared-configs(共享配置文件)

application-{profile}.yml

application.yml

bootstrap.yml

扩展配置文件和共享配置文件可以配置多个,它们之间也是有优先级关系的。

spring: 
  application:
    # 应用名称
    name: test
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
#        register-enabled: false
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - data-id: application1-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: DEFAULT_GROUP
          - data-id: application2-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: DEFAULT_GROUP
        extension-configs:
          - data-id: config1.yml
            group: DEFAULT_GROUP
          - data-id: config2.yml
            group: DEFAULT_GROUP

扩展配置和共享配置都符合下面配置的优先级比上面配置的优先级高,即config2.yml的优先级比config1.yml的优先级高,共享配置同理。

    但是仔测试中有时候需要本地配置能够优先远程配置,这个nacos配置中心也给我们想到了这个问题。我们只需要添加如下配置即可。
spring:
  cloud:
    config:
      # 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置
      override-none: true
      # 如果想要远程配置优先级高,那么 allow-override 设置为 false,如果想要本地配置优先级高那么 allow-override 设置为 true
      allow-override: true
      # 只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置;注意本地配置文件不是系统属性
      override-system-properties: false

需要注意这个配置要写在远程配置中心中!!!(也就是直接服务名称.yml,不可以写在服务名-环境名称.yml中)


本文转载自: https://blog.csdn.net/L1511768722/article/details/137645279
版权归原作者 L1511768722 所有, 如有侵权,请联系我们删除。

“SpringCloud + Nacos配置文件优先级详解以及本地配置覆盖远程方法”的评论:

还没有评论