Nacos动态刷新配置(二)

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 Nacos动态刷新配置(二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

上篇讲了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:点此查看

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143370.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!