Nacos动态刷新配置(二)

本文详细介绍了如何使用Nacos作为配置中心,实现动态配置和环境切换。通过添加依赖、配置bootstrap.yml文件,展示了properties和yml格式的动态配置,并演示了在Nacos控制台创建和发布配置,以及如何根据spring.profiles.active指定环境来加载不同的配置。最后,提供了完整的代码示例链接。
摘要由CSDN通过智能技术生成

上篇讲了nacos注册发现的使用,点此进入上篇
这节我们来看下nacos配置服务。
从架构图可以看出,Nacos提供了两种服务, 一种是用于服务注册、发现的Naming Service,一种是用于配置中心、动态配置的Config Service,而他们底层均由core模块来支持。外层提供OpenAPI供客户端使用,并提供了User Console、Admin Console方便用户使用 。
在这里插入图片描述

配置中心搭建

添加依赖

这里我介绍的是基于上一篇【Nacos服务注册中心(一)】的配置来的。

<!--nacos实现配置的动态变更-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

修改配置文件

创建bootstrap.yml文件

server:
  port: 1001
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        #file-extension: yml
users:
  name: dev在路上的小蚂蚁
  age: 16

如上图所示,配置信息,主要是application name和nacos的配置信息。
file-extension为配置内容的数据格式,可以支持 properties 和 yaml 类型。
我这里先按照默认的配置演示一下
在这里插入图片描述

编写读取配置类

编写控制层读取这两个属性值
读取方式不限,我这里是使用@Value来获取,示例如下:
在这里插入图片描述
值得注意的是需要加入注解:@RefreshScope,才能够实现动态刷新的配置效果。
先不进行配置,测试该接口获取的配置:
在这里插入图片描述

控制台配置

properties文件动态配置

在【配置管理】-【配置列表】里,创建配置文件。
在这里插入图片描述
在这里插入图片描述
配置文件命名方式
Data ID定义规则是: p r e f i x − {prefix}- prefix{spring.profiles.active}.${file-extension}
1)prefix 默认为 spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix 来配置。
2)spring.profiles.active 即为当前环境对应的 profile,可以通过配置项 spring.profiles.active 来配置。
3)file-exetension 为配置内容的数据格式,默认是properties ,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 prefix.{prefix}.prefix.{file-extension}
比如,我们现在没有指定环境,先增加一个如:nacos-config.properties
在这里插入图片描述
按此步骤,发布即可。
再次刷新获取配置接口:
在这里插入图片描述
可以发现,我们的配置实时的更改了。
至此,nacos动态配置就实现了。

yml文件动态配置

上面说了,还支持yml文件动态配置,我们改造上面代码,上面说:file-exetension 为配置内容的数据格式,默认是properties,我们改为yml。
在这里插入图片描述
重启项目,先刷新获取配置测试接口:

在这里插入图片描述
还是原配置,接下来在控制台配置yml。

在这里插入图片描述
刷新测试接口
在这里插入图片描述
success!

指定环境动态配置

正常情况下开发环境和生产环境的配置肯定是不一样的,我们需要对指定环境进行响应的配置,当为开发环境是一套配置,生产环境是另一套配置。
这时我们需要指定运行环境

server:
  port: 1001
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml
  profiles:
    active: dev

加入spring.profiles.active=dev指定运行环境
dev环境示例如下:
在这里插入图片描述
启动项目,访问:http://localhost:1001/test/get
在这里插入图片描述
没问题,接下来增加配置,格式为: p r e f i x − {prefix}- prefix{spring.profiles.active}.${file-extension}
在这里插入图片描述
再次获取配置
在这里插入图片描述
dev配置生效,我再测试下配置prod环境会不会生效。
增加prod配置
在这里插入图片描述
现在运行的是dev环境,新建prod配置。
在这里插入图片描述
获取配置信息
在这里插入图片描述
结论:发现nacos可以根据运行环境来配置不同环境的配置信息。

nacos服务完整示例代码已上传gitee:点此查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的蚂蚁【你若】

如果帮助到了您,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值