nacos配置文件优先级过程
作者:Lemon_MY
这篇文章主要介绍了nacos配置文件优先级过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
nacos配置文件优先级
各个配置文件的优先级
当前配置文件如下:
spring: profiles: active: dev cloud: nacos: config: server-addr: ${nacos.server-addr} username: ${nacos.username} password: ${nacos.password} namespace: tsp-${spring.profiles.active} prefix: project
优先级:userservice-dev.yml(当前环境配置) > userservice.yml(nacos上的)> application.yml(本地的)
本地配置文件中的优先级
spring: application: name: nacos-config-multi main: allow-bean-definition-overriding: true cloud: nacos: username: ${nacos.username} password: ${nacos.password} config: server-addr: ${nacos.server-addr} namespace: ${nacos.namespace} # 用于共享的配置文件 shared-configs: - data-id: common-mysql.yaml group: SPRING_CLOUD_EXAMPLE_GROUP - data-id: common-redis.yaml group: SPRING_CLOUD_EXAMPLE_GROUP - data-id: common-base.yaml group: SPRING_CLOUD_EXAMPLE_GROUP ...... # 常规配置文件 # 优先级大于 shared-configs,在 shared-configs 之后加载 extension-configs: - data-id: nacos-config-advanced.yaml group: SPRING_CLOUD_EXAMPLE_GROUP refresh: true - data-id: nacos-config-base.yaml group: SPRING_CLOUD_EXAMPLE_GROUP refresh: true
扩展配置(extension-configs) > 共享配置(shared-configs)
- 同为扩展配置,存在如下优先级关系:extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0]
- 同为共享配置,存在如下优先级关系:shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]
实现本地配置优先
spring: cloud: config: # 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置 override-none: true # 如果想要远程配置优先级高,那么 allow-override 设置为 false,如果想要本地配置优先级高那么 allow-override 设置为 true allow-override: true # 只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置;注意本地配置文件不是系统属性 override-system-properties: false
注意:一定要配置到远程配置(nacos)上,否则不生效
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。