nacos配置

一.业务描述:

项目是分布式项目,需要将分服务中公共的模块抽取出来,成为一个公共的模块,不需要在每一个服务中配置,项目中使用的配置中心是nacos

二.了解nacos配置:

nacos官方文档:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

1. nacos基础配置

由官方文档,我们可知,关于nacos的配置,我们需要配置nacos server的地址和应用名

spring:
  application:
    name: aaa
  cloud:
     nacos:
        config:
           file-extension: yml
           group: DEFAULT_GROUP
           namespace: test
           server-addr: 127.0.0.1:8848
           username: nacos
           password: nacos

spring:application:name: 是构成nacos配置管理dataId字段的一部分

在nacos spring cloud中,dataId的完整配置格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix默认值就是spring:application:name:的值,也可以通过配置
spring.cloud.nacos.config.prefix来配置

spring.profiles.active是当前对应的环境 如:开发环境dev 测试:test等,若遇到多套环境下的不
配置,可以通过该配置项来进行配置。当该值没有进行配置时,对应的-也不存在,dataId的拼接格式就成了
${prefix}.${file-extension}

file-exetension 为配置内容的数据格式,目前只支持properties 和 yaml 类型
3. nacos扩展属性:

官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

3.1 extension-configs:
spring.application.name=aaa
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

# config external configuration
# 1、Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新
spring.cloud.nacos.config.extension-configs[0].data-id=ext-config-common01.properties

# 2、Data Id 不在默认的组,不支持动态刷新
spring.cloud.nacos.config.extension-configs[1].data-id=ext-config-common02.properties
spring.cloud.nacos.config.extension-configs[1].group=GLOBALE_GROUP

# 3、Data Id 既不在默认的组,也支持动态刷新
spring.cloud.nacos.config.extension-configs[2].data-id=ext-config-common03.properties
spring.cloud.nacos.config.extension-configs[2].group=REFRESH_GROUP
spring.cloud.nacos.config.extension-configs[2].refresh=true

注:

  • 通过 spring.cloud.nacos.config.extension-configs[n].data-id 的配置方式来支持多个 Data Id 的配置。

  • 通过 spring.cloud.nacos.config.extension-configs[n].group 的配置方式自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。

  • 通过 spring.cloud.nacos.config.extension-configs[n].refresh 的配置方式来控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的,配置refresh来控制是否自动刷新

注:多个 Data Id 同时配置时,它的优先级关系是 spring.cloud.nacos.config.extension-configs[n].data-id 其中 n 的值越大,优先级越高

spring.cloud.nacos.config.extension-configs[n].data-id 的值必须带文件扩展名文件扩展名既可支持 properties,又可以支持 yaml/yml。

此时 spring.cloud.nacos.config.file-extension 的配置对自定义扩展配置的 Data Id 文件扩展名没有影响。

3.2 shared-configs
 配置支持共享的 Data Id
spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml

# 配置 Data Id 所在分组,缺省默认 DEFAULT_GROUP
spring.cloud.nacos.config.shared-configs[0].group=GROUP_APP1

# 配置Data Id 在配置变更时,是否动态刷新,缺省默认 false
spring.cloud.nacos.config.shared-configs[0].refresh=true

注:

  • 通过 spring.cloud.nacos.config.shared-configs[n].data-id 来支持多个共享 Data Id 的配置。

  • 通过 spring.cloud.nacos.config.shared-configs[n].group 来配置自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。

  • 通过 spring.cloud.nacos.config.shared-configs[n].refresh 来控制该Data Id在配置变更时,是否支持应用中动态刷新,默认false。

4.nacos配置的加载顺序:

${prefix}-${spring.profiles.active}.${file-extension}>${prefix}.${file-extension}>extension>share>本地的配置文件

三.操作:

我在实际配置的过程中,也可以这样进行配置,这样的话 extension-configs越靠后优先级越高,以下是以其中一个分服务(vcc)的配置为例,抽取公共的配置(每一个分服务中都应该添加extension-configs下面的这个配置)

解释:这个是在vcc分服务上,存在两个扩展配置文件,aaa.yml common.properties

读取文件的时候,先读取的是vcc-dev.yml的配置,然后读取aaa.yml,然后读取 common.properties 的配置。

spring:
  cloud:
    nacos:
      config:
        extension-configs:
          - data-id: common.properties  
            group: DEFAULT_GROUP #分组是默认分组
            refresh: true    #动态刷新
          - data-id: aaa.yml
            group: DEFAULT_GROUP
            refresh: true
        ## 配置文件后缀
        file-extension: yml
        group: DEFAULT_GROUP
        namespace: test
        ## 文件名,如果没有配置则默认为 ${spring.appliction.name} + ${spring.profiles.active}
        prefix: vcc
        ## 配置文件地址
        server-addr: 127.0.0.1:8848
  profiles:
    active: dev
     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值