当前位置: 首页 > news >正文

Nacos热更新

Nacos热更新

相比其他注册中心,Nacos的优势之一在于热更新。
热更新,就是不需要重启服务,就能够更新配置。

nacos配置中心

首先,需要搭建 Nacos,详情见: https://www.cnblogs.com/expiator/p/17392549.html

  • provider-dev.yaml,配置如下 :
my:name: chenage: 28

第一种方式: @RefreshScope

Nacos可以通过注解 @RefreshScope 热更新。
只需在类上方添加 @RefreshScope 即可。

示例如下:

  • 添加 @RefreshScope
    在Controller上方添加即可。
    启动服务后,调用接口,就可以查看到配置的值。
@RestController
@RefreshScope
public class ProviderController {/***  后面的 :abc 表示默认值为 abc。*/@Value("${my.name:abc}")private String configName;@GetMapping(value = "/provider/config")public String getConfig() {return configName;}
}
  • provider-dev.yaml,修改配置为:
my:name: liuage: 28
  • 查看配置
    可以看到日志显示配置项已经更新,
RefreshEventListener       : Refresh keys changed: [my.name]

无须重启服务,修改Nacos配置后,调用接口,查看配置信息,如下:
可以看到,已经是最新的配置。

第二种方式: @ConfigurationProperties

  • @ConfigurationProperties示例如下:

ConfigurationProperties做热更新。prefix 表示前缀。
比如 my.name配置,对应前缀为 my,属性为 name。

/*** ConfigurationProperties做热更新。prefix 表示前缀,比如my.name,还有my.age,前缀就是 my*/
@Component
@Data
@ConfigurationProperties(prefix = "my")
public class MyConfig {/*** my.name配置,对应前缀my,属性 name*/private String name;private Integer age;
}
  • 控制层:
@RestController
public class MyConfigController {@Autowiredprivate MyConfig config;@RequestMapping("/provider/config/my")public String getConfig() {return config.getName();}}

无须重启服务,修改Nacos配置后,调用接口,就可以查看到最新的配置信息。

参考资料:

https://blog.csdn.net/wang_o_yi/article/details/124387045
https://blog.csdn.net/LMGD_/article/details/128303186

http://www.lryc.cn/news/227374.html

相关文章:

  • CSS3 中 transition 和 animation 的属性分别有哪些
  • 【狂神说Java】Nginx详解
  • 【第六章】软件设计师 之 数据结构与算法基础
  • Git基本概念和使用方式
  • Falcon构建轻量级的REST API服务
  • 【Python】python读取,显示,保存图像的几种方法
  • k8s系列-kuboard 该操作平台的使用操作
  • 基于讯飞星火大语言模型开发的智能插件:小策问答
  • 笔记:AI量化策略开发流程-基于BigQuant平台(二)
  • 100127. 给小朋友们分糖果 II
  • 【2】Spring Boot 3 项目搭建
  • 【第七章】软件设计师 之 程序设计语言与语言程序处理程序基础
  • 如何判断一个角是否大于180度(2)
  • ASAM OpenDRIVE V1.7协议超详解(一)
  • springboot的配置信息的设置和读取(application.properties/application.yml)
  • Deepsort项目详解
  • C语言证明一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数
  • Python 的 datetime 模块
  • Termius for Mac:掌控您的云端世界,安全高效的SSH客户端
  • Ubuntu 下监控并自动重启网卡
  • 377. 组合总和 Ⅳ
  • 【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
  • C语言进阶
  • Linux之gdb
  • 100天精通风控建模(原理+Python实现)——第3天:风控建模中如何处理缺失值?
  • Leetcode—680.验证回文串II【简单】
  • Redis五种数据类型及命令操作(二)
  • 低代码信创开发核心技术(三):MDA模型驱动架构及元数据系统设计
  • HslCommunication模拟西门子读写数据
  • 多测师肖sir_高级金牌讲师_ui自动化po框架版本02