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中)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值