springcloud-alibaba-nacos(8)nacos共享配置

为什么需要配置共享

微服务应用在系统开发的时候,我们会启动很多很多个微服务实例,每个服务都有自己的配置,但有的配置其实是一样的 比如mysql 连接、mongo连接、或者mq地址等等,因此我们可以提取出一个公共配置

Nacos实现配置共享实战

依赖引入

如果您的微服务项目还未引入nacos作为配置客户端的话,那么您首先需要引入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>s

YML配置

server:
  port: 8902
spring:
  application:
    name: app-base-center
  cloud:
    nacos:
      # 我这里使用Nginx做了集群
      server-addr: http://10.50.40.116:8765
      config:
        # 指明当前项目核心配置文件后缀为Yml 则最终会从 app-base-center.yml拉取配置
        file-extension: yml
        group: DEFAULT_GROUP
        # 共享配置
        shared-configs:
          - data-id: adas-common-shared-config.yml
            group: DEFAULT_GROUP
            # 是否动态刷新,默认为false
            refresh: true
          - data-id: mongo-shared-config.yml
            group: DEFAULT_GROUP
            refresh: false
      discovery:
        ip: 10.50.40.113

配置的概念

远程核心配置

远程核心配置指的存在于nacos服务器上,项目本身的配置,通过上方配置的文件扩展名、分组、命名空间、项目名 等找到

上方yml 最终回去 默认public 命名空间,DEFAULT_GROUP 分组 去寻找 app-base-center.yml

远程共享配置

shared-configs 便是共享配置了,我们可以同时读取多个共享配置,具体逻辑可以按住Ctrl 从Yml配置点过去查看源码

共享配置必须与核心配置在同一命名空间下,可以不同分组

共享配置与核心配置优先级

核心配置 > 共享配置

比如 核心配置 与共享配置均有 配置属性 student.name,那么最后应用的将是核心配置中对应的配置属性

核心配置如下:

image-20220414220030380

共享配置如下:

image-20220414220057141

那么最终项目中应用的对应属性为 核心配置app-base-centeryml中的配置

image-20220414220145845

多个共享配置间优先级

例如,我上方配置了两个共享配置 adas-common-shared-config.ymlmongo-shared-config.yml

且配置中都含有属性spring.data.mongodb.uri

多个共享配置间,相同的属性将会根据YML配置先后顺序,从后向前覆盖,那么我这里将会由mongo-shared-config.yml 的共享配置覆盖掉adas-common-shared-config.yml

共享配置优先级总结

远程核心配置 > 远程共享配置(多个配置从后向前覆盖) > 远程扩展配置 (多个配置从后向前覆盖) >本地配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值