Nacos实现不同应用之间共享配置

目前Nacos提供了两种方式可以实现不同应用之间的配置共享

使用shared-dataids

首先需要到Nacos上创建一些共享配置

  • common1.yaml
common1:
  key1: value1
  • common2.yaml
common2:
  key2: value2

修改项目中的bootstrap.yml文件如下

spring:
  application:
    name: ok-cloud
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: appblog
        cluster-name: HZ
        file-extension: yaml
        # 共享配置的DataId,多个使用,分隔
        # 越靠后,优先级越高
        # .yaml后缀不能少,只支持yaml/properties
        shared-dataids: common1.yaml,common2.yaml
        # 哪些共享配置支持动态刷新,多个使用,分隔
        refreshable-dataids: common1.yaml
  profiles:
    active: dev

从以上的配置示例可以看出,其实shared-dataids的主要作用就是用来指定共享配置的Data ID,使得该微服务可以读取这些共享配置。同理,其他微服务若想读取这些共享配置,只需在项目的bootstrap.yml文件中添加相应的shared-dataids配置即可,如此一来就实现了多个微服务之间的配置共享。

@Value("${common1.key1}")
private String key1;

@Value("${common2.key2}")
private String key2;

@GetMapping("/key1")
public String testKey1() {
    return key1;
}

@GetMapping("/key2")
public String testKey2() {
    return key2;
}

使用ext-config

spring:
  application:
    name: ok-cloud
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        ext-config:
          # 需共享的DataId,yaml后缀不能少,目前只支持yaml/properties
          # 越靠后,优先级越高 优先级common2.yaml > common1.yaml
          - data-id: common1.yaml
            # common1.yaml所在的group
            group: DEFAULT_GROUP
            # 是否允许刷新,默认false
            refresh: true
          - data-id: common2.yaml
            group: DEFAULT_GROUP
            refresh: true
  profiles:
    active: dev

ext-config提供了较为细化的配置方式,并且可以指定配置组。到目前为止,我们介绍了三种从Nacos上读取配置的方式,其优先级如下:

shared-dataids < ext-config < 自动

除此之外,当存在相同的远程配置和本地配置时,远程配置优先级要高于本地配置文件。但可以通过添加如下配置调整,需要注意的是这段配置需要放在远程配置才会生效:

spring:
  cloud:
    config:
      # 是否允许本地配置覆盖远程配置,默认true
      allow-override: true
      # 是否一切以本地配置为准,默认false
      override-none: false
      # 系统环境变量或系统属性才能覆盖远程配置文件的配置
      # 本地配置文件中配置的优先级低于远程配置,默认true
      override-system-properties: true

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/nacos-enables-shared-configuration-between-different-applications/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Nacos实现不同应用之间共享配置
目前Nacos提供了两种方式可以实现不同应用之间的配置共享 使用shared-dataids 首先需要到Nacos上创建一些共享配置 common1.yaml common1: key1: value1 ……
<<上一篇
下一篇>>
文章目录
关闭
目 录