Nacos的Config配置中心

Nacos提供用于存储配置和其他元数据功能,为分布式系统中的外部化配置提供服务器端和客户端支持,使用Spring Cloud Alibaba Nacos Config就可以在Nacos Server集中管理Spring Cloud应用的外部属性配置。

Spring Cloud Alibaba Nacos config是在启动的bootstrap阶段,将配置加载到Spring环境中。

Spring Cloud Alibaba Nacos Config使用DataId和GROUP确定一个配置。

启动好Nacos之后,在Nacos添加如下的配置:

Data ID: nacos-config.properties 
Group : DEFAULT_GROUP 
配置格式: Properties 
配置内容: 
user.name=zhangsan 
user.age=18

注意

第一: DataId是以.properties为扩展名(默认的文件扩展名方式就是.properties);

第二:在运行时必须使用 bootstrap.properties配置文件配置nacos server地址,同时,spring.application.name值必须与Nacos中配置的Data Id匹配(除了.properties或者.yaml后缀);

第三:默认使用spring.application.name配置跟文件扩展名结合(配置格式默认使用.properties),GROUP不配置默认使用DEFAULT_GROUP

第四:注意当你使用域名的方式来访问Nacos时,spring.cloud.nacos.config.server-addr 配置的方式为 域名:port,例如 Nacos的域名为nacos.power.com,监听的端口为80,则 spring.cloud.nacos.config.server-addr=nacos.power.com:80,注意80 端口不能省略;

如果要在项目中使用Nacos来实现应用的外部化配置,需要添加如下依赖:

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

Nacos Config配置中心动态刷新

Nacos Config Starter 默认为所有获取数据成功的 Nacos 的配置项添加了监听功能,在监听到服务端配置发生变化时会实时触发org.springframework.cloud.context.refresh.ContextRefresher的refresh 方法;

可以通过配置 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新;

基于DataId为yam扩展名配置方式

Nacos Config 除了支持.properties格式以外,也支持yaml格式,这个时候只需要完成以下两步:

  1. 在应用的bootstrap.properties配置文件中显式地声明DataId文件扩展名;bootstrap.properties文件配置如下:

spring.cloud.nacos.config.file-extension=yaml

  1. 在Nacos的web管控台新增一个DataId为yaml扩展名的配置,如下所示:
Data ID:       nacos-config.yaml
Group  :       DEFAULT_GROUP
配置格式:        YAML
配置内容:        user.name: zhangcuishan
                user.age: 35

基于profile粒度的多环境配置

spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 ${spring.application.name}.${file-extension:properties} 为的基础配置,还加载了dataid为
${spring.application.name}-${profile}.${file-extension:properties} 的基础配置;

在日常开发中如果遇到多套环境下的不同配置,可以通过Spring提供的 ${spring.profiles.active} 配置项来激活使用某个配置文件;

spring.profiles.active=develop
${spring.profiles.active}当通过配置文件来指定时必须放在 bootstrap.properties文件中;

比如在Nacos上新增一个dataid为:nacos-config-dev.yaml的基础配置,如下所示:

Data ID:        nacos-config-deve.yaml
Group  :        DEFAULT_GROUP
配置格式:        YAML
配置内容:        current.env: dev-env

如果需要切换到生产环境,只需要更改 ${spring.profiles.active} 参数配置即可,如下所示:
spring.profiles.active=product

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值