首页 > 其他分享 >通过配置中心实现热更新

通过配置中心实现热更新

时间:2024-06-07 17:55:36浏览次数:15  
标签:中心 spring 配置 cart 购物车 添加 更新

配置热更新

有很多的业务相关参数,将来可能会根据实际情况临时调整。例如购物车业务,购物车数量有一个上限,默认是10,对应代码如下: 现在这里购物车是写死的固定值,我们应该将其配置在配置文件中,方便后期修改。 但现在的问题是,即便写在配置文件中,修改了配置还是需要重新打包、重启服务才能生效。能不能不用重启,直接生效呢? 这就要用到Nacos的配置热更新能力了,分为两步:
  • 在Nacos中添加配置
  • 在微服务读取配置
 

添加配置到Nacos

首先,我们在nacos中添加一个配置文件,将购物车的上限数量添加到配置中: 注意文件的dataId格式:
[服务名]-[spring.active.profile].[后缀名]
文件名称由三部分组成:
  • 服务名:我们是购物车服务,所以是cart-service
  • spring.active.profile:就是spring boot中的spring.active.profile,可以省略,则所有profile共享该配置
  • 后缀名:例如yaml
  这里我们直接使用cart-service.yaml这个名称,则不管是dev还是local环境都可以共享该配置。 配置内容如下:
hm:
  cart:
    maxAmount: 1 # 购物车商品数量上限
  提交配置,在控制台能看到新添加的配置:  

配置热更新

配置热更新有两种方案: 1、在@Value注解所在的类上面新增注解:@RefreshScope   2、配置属性类,在类上新增注解:@ConfigurationProperties 接着,我们在微服务中读取配置,实现配置热更新。 在cart-service中新建一个属性读取类: 代码如下:
package com.hmall.cart.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "hm.cart")
public class CartProperties {
    private Integer maxAmount;
}
  接着,在业务中使用该属性加载类:   测试,向购物车中添加多个商品: 我们在nacos控制台,将购物车上限配置为5:   无需重启,再次测试购物车功能: 加入成功! 无需重启服务,配置热更新就生效了!  

标签:中心,spring,配置,cart,购物车,添加,更新
From: https://www.cnblogs.com/linzepro/p/18237634

相关文章

  • 袋鼠云产品功能更新报告10期|智能进化,近百项功能升级加速数智化转型
    欢迎查阅袋鼠云第10期产品功能更新报告。本期,我们精心推出了72项新增和优化功能,致力于在数字化浪潮中为您提供更高效、更智能的服务。我们相信,这些新特性将为您的业务注入新活力,确保您在数字化转型的每一步都坚实而有力。以下为袋鼠云产品功能更新报告第10期内容,更多探索,请继续阅......
  • 本地配置离线的llama3大模型实现chatgpt对话详细教程
    参考:Llama3本地部署及API接口本地调试,15分钟搞定最新MetaAI开源大模型本地Windows电脑部署_llama3本地部署-CSDN博客 正在下载-----importrequestsimportjsonurl="http://localhost:11434/api/generate"data={&......
  • GD32如何配置中断优先级分组以及中断优先级
    使用GD32MCU的过程中,大家可能会有以下疑问:中断优先级如何配置和使用?本文将会为大家解析中断优先级分组以及中断优先级的配置使用:中断优先级分组配置一个GD32MCU系统需要大家明确系统中使用的中断优先级分组,避免中断优先级配置越界导致一些不符合预期的中断现象。中断优先......
  • Python自动化发送邮件如何实现?怎么配置?
    Python自动化发送邮件需要注意什么?邮件群发的技巧?无论是个人使用还是企业需求,电子邮件的发送都是必不可少的。而Python作为一门功能强大的编程语言,可以通过自动化脚本实现批量发送邮件,从而提高工作效率。AokSend将详细介绍如何使用Python自动化发送邮件。Python自动化发送邮......
  • mysql 简单参数配置
    showglobalvariableslike'%timeout%';showglobalvariableslike'%buffer%'; innodb_buffer_pool_size=60Gwait_timeout=2400 showglobalvariableslike'%wait_timeout%';showglobalvariableslike'%innodb......
  • ThinkPHP发邮件配置教程?群发功能安全吗?
    ThinkPHP发邮件的注意事项?如何优化邮件发送的性能?无论是用户注册、密码重置还是消息提醒,发送邮件都是一个常见的需求。AokSend将详细介绍如何在ThinkPHP框架中配置和发送邮件,帮助开发者轻松实现邮件功能。ThinkPHP发邮件:了解需求在开始配置之前,我们需要明确邮件发送的具体......
  • 网关SpringCloudGateway配置
    1.2.快速入门如何利用网关实现请求路由。由于网关本身也是一个独立的微服务,因此也需要创建一个模块开发功能。大概步骤如下:创建网关微服务引入SpringCloudGateway、NacosDiscovery依赖编写启动类配置网关路由 1.2.1.创建项目首先,我们要在hmall下创建一个新的module,命......
  • 顶顶通呼叫中心中间件-如何配置识别不同语种的ASR
    文章目录前言联系我们创建不同语种的语音识别任务开始对接识别不同语种的ASR重启asrproxy程序使用识别不同语种的ASR前言之前讲过顶顶通的asrproxy程序如何对接第三方的ASR,比如:阿里云的ASR。不知道如何对接的,可以参考:对接阿里云ASR和TTS。本文讲解顶顶通如何对......
  • OCA/base_report_to_printer 配置Odoo云打印
    系统结构安装部署Odoo安装模块依赖pipinstallpycups安装OCA模块report-print-send/base_report_to_printercupscups简介CUPS(CommonUNIXPrintingSystem)是一个开源的打印系统,用于在Unix-like操作系统上管理打印任务。它提供了打印机驱动程序、打印队列管理、打印作业......
  • nginx配置跨域文档记录
    参考:https://www.cnblogs.com/PengfeiSong/p/12993446.html@目录概要代码小结概要这个跨域我之前配置过,昨天搜了下教程没有配成功,今天上午又花了近一上午才搞定,特意过来记录下代码server{listen80;server_nameapi.xxx.space;client_max_body_size50M;......