Springboot 实践(18)Nacos配置中心参数自动刷新测试

前文讲解了Nacos 2.2.3配置中心的服务端的下载安装,和springboot整合nacos的客户端。Springboot整合nacos关键在于使用的jar版本要匹配,文中使用版本如下:

☆ springboot版本: 2.1.5.RELEASE

☆ spring cloud版本 Greenwich.RELEASE

☆ spring cloud alibaba版本 2.1.2.RELEASE

备注:文中使用了上述版本,其他匹配版本可参考官网。使用版本必须匹配,否则会出现不自动刷新、控制台报错等各种奇怪问题。

Nacos配置中心参数更改后,客户端参数刷新是通过@RefreshScope和@Value配和实现的。

☆ @RefreshScope(org.springframework.cloud.context.scope.refresh)是spring cloud提供的一种特殊的scope实现,用来实现配置、实例热加载

☆ @Value("#{}") 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量。

为实现nacos客户端的参数自动刷新,首先核对客户端的bootstrap.yml文件参数配置,详细如下,红色字体标注;由于nacos client 默认使用namespace名称为"public",默认group名称为"DEFAULT_GROUP",如使用自建空间,要特备注意这两个参数的修改。

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848

username: nacos

password: nacos

namespace: 7fe8fb2f-9e3a-438b-bf9a-1a0ca8d4c898

group: test

config:

是否开启配置中心 默认true

enabled: true

自动刷新配置文件,默认true

refresh-enabled: true

server-addr: 127.0.0.1:8848 #nacos地址

username: nacos

password: nacos

namespace: 7fe8fb2f-9e3a-438b-bf9a-1a0ca8d4c898

group: test

prefix: ${spring.application.name}

file-extension: yaml #文件后缀,可省略不配置

++auto-refresh++ : true

enable-remote-sync-config: true

extension-configs:

  • data-id: sjl.yaml

group: test

refresh: true

nacos客户启动后, 配置中心"服务列表"页面如下图所示,下图中,红色直线上内容,与cloud.nacos.discovery参数配置一致

配置中心"配置列表"页面如下图所示,下图中,红色直线上内容,与cloud.nacos. config参数配置一致

备注:"配置列表"和"服务列表"两部分使用的空间必须一致,也就是bootstrap.yml配置中的namespace值必须一致;不同空间的配置,不能在同一客户端使用。

测试步骤:

  1. 使用http://localhost:2881/swagger-ui.html地址,登录swagger-ui页面,执行"/config3/getName"函数,返回值为"sjl",如下图所示:
  2. 在Nacos配置中心,选择编辑"sjl.yaml"文件,将name值改为"sjl123",选择发布。
  1. 通过swagger-ui页面,再次执行"/config3/getName"函数,返回值为"sjl123",如下图所示:

备注:通过Nacos配置中心修改参数,不许选择"发布",否则参数不予更新。

通过上述测试,在不重新启动客户端的情况下,参数成功在客户端进行了更新。

相关推荐
知识即是力量ol10 分钟前
口语八股——Spring 面试实战指南(一):核心概念篇、AOP 篇
java·spring·面试·aop·八股·核心概念篇
utmhikari13 分钟前
【架构艺术】治理后端稳定性的一些实战经验
java·开发语言·后端·架构·系统架构·稳定性·后端开发
文艺倾年16 分钟前
【源码精讲+简历包装】LeetcodeRunner—手搓调试器轮子(20W字-上)
java·jvm·人工智能·tomcat·编辑器·guava
dfyx99929 分钟前
Maven Spring框架依赖包
java·spring·maven
茶杯梦轩1 小时前
从零起步学习并发编程 || 第二章:多线程与死锁在项目中的应用示例
java·服务器·后端
日月云棠1 小时前
JAVA JDK 11 特性详解
java
sp421 小时前
Spring Task 任务调度可视化管理
后端·spring
q***76561 小时前
工作中常用springboot启动后执行的方法
java·spring boot·后端
菜鸡儿齐1 小时前
leetcode-和为k的子数组
java·算法·leetcode
时艰.1 小时前
电商促销系统知识点整理
java