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

Spring Cloud全解析:配置中心之springCloudConfig分布式配置动态刷新

分布式配置动态刷新

当配置中心中的配置修改之后,客户端并不会进行动态的刷新,每次修改配置文件之后,都需要重启客户端,那么如何才能进行动态刷新呢

可以使用@RefreshScope注解配合actuator端点进行手动刷新,不需要重启客户端

需要引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

配置文件配置

# 端点管理
management:endpoints:web:exposure:include: "*"  # 暴露端点,*表示全部暴露  刷新需要用到的是refresh端点

并在用到配置文件信息的类上增加@RefreshScope注解

@RestController
@RefreshScope
public class TestController {@Value("${version}")private String version;@RequestMapping("/test")public String test(){return version;}
}

此时git上的配置文件修改,只需要使用post请求调用http://ip:port/actuator/refresh即可刷新配置,而不需要重启客户端,使用post请求

彩蛋

这里说一个彩蛋,我在看spring-cloud-config-client的源码的时候,发现一个ConfigClientWatch,是用来进行定时轮询读取config-server的配置,这个应该是之前老版本实现的

@Scheduled(initialDelayString = "${spring.cloud.config.watch.initialDelay:180000}",fixedDelayString = "${spring.cloud.config.watch.delay:500}")
public void watchConfigServer()

需要配置spring.cloud.config.watch.enabled

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(ContextRefresher.class)
@ConditionalOnBean(ContextRefresher.class)
@ConditionalOnProperty("spring.cloud.config.watch.enabled")
protected static class ConfigClientWatchConfiguration {@Beanpublic ConfigClientWatch configClientWatch(ContextRefresher contextRefresher) {return new ConfigClientWatch(contextRefresher);}}

其内部使用的是ContextRefresher,感兴趣的话可以自己去了解一下

https://zhhll.icu/2021/框架/微服务/springcloud/配置中心/springCloudConfig/2.分布式配置动态刷新/

相关文章:

Spring Cloud全解析:配置中心之springCloudConfig分布式配置动态刷新

分布式配置动态刷新 当配置中心中的配置修改之后&#xff0c;客户端并不会进行动态的刷新&#xff0c;每次修改配置文件之后&#xff0c;都需要重启客户端&#xff0c;那么如何才能进行动态刷新呢 可以使用RefreshScope注解配合actuator端点进行手动刷新&#xff0c;不需要重…...

mac如何查看shell是 zsh还是bash

怎么确定mac使用的 shell类型 在终端中输入echo $0命令查看你所使用的 shell&#xff08;默认使用的zsh&#xff09; echo $0# 或者 echo $SHELL 如果是 bash 配置文件则为&#xff1a;~/.bash_profile 是 zsh&#xff0c;则配置文件为&#xff1a;~/.zshrc 如何更改默认 S…...

STM32cubeMX配置Systick的bug

STM32cubeMX版本&#xff1a;6.11.0 现象 STM32cubeMX配置Systick的时钟&#xff0c;不管选择不分频 还是8分频。 生成的代码都是一样的&#xff0c;代码都是不分频。 即不管选择不分频还是8分频&#xff0c;Systick都是使用的系统时钟 函数调用 HAL_Init() → HAL_Init…...

分享几个好用js片段

最近在做telegram小程序&#xff0c;所以又回归了web端了&#xff0c;发现几个好用又简洁的代码片段&#xff0c;在这里分享一下。 获取浏览器cookie值 const cookie name > ; ${document.cookie}.split(; ${name}).pop().split(;).shift();cookie(_ga); 2. 将RGB转换为1…...

web前端之实现一只可爱的小杰尼乌龟、伪元素、动画

MENU 前言效果图htmlstyle 前言 代码段使用HTML和CSS创建一个“杰尼龟”的动画。 效果图 html <div class"squirtle"><div class"tail"></div><div class"body"><div class"stomach"></div><d…...

银河麒麟服务器版在rc.local使用ifcong 配置IP和nmcli的区别

1、使用ifconfig配置IP ‌ifconfig是一个传统的网络配置工具&#xff0c;‌它直接操作网络接口&#xff0c;‌允许用户手动设置IP地址、‌子网掩码等网络参数。‌这种方式比较直接&#xff0c;‌但需要用户对网络接口和配置有较深入的了解。‌使用ifconfig配置的IP地址在系统重…...

【运维】深入理解 Linux 中的 `mv` 命令,使用 `mv` 移动所有文件但排除特定文件或文件夹

文章目录 一、基本语法二、基本用法三、使用 `mv` 移动所有文件但排除特定文件或文件夹**命令解释:**四、其他常用选项五、总结深入理解 Linux 中的 mv 命令:移动文件和文件夹的艺术 在日常使用 Linux 的过程中,mv(move)命令是我们经常会用到的一个命令,它不仅可以用来移…...

Xilinx课程,就这么水灵灵地上线了~

如果你想了解&#xff1a; 如何利用精通流水线&#xff08;Pipeline&#xff09;技术&#xff0c;让电路设计效率倍增&#xff1f; 如何掌握利用性能基线指导设计流程的方法&#xff1f; 如何理解集成电路设计中的UltraFast Design Methodology Implementation设计方法学中的…...

【axios get请求 中文乱码】

问题复现 前端请求&#xff1a; company/queryFenByOrgNo?orgNo5&qcNam%D2%BB%C6%DA qcNam 一期 后端接收&#xff1a; CompanyManagementController - 入参 orgNo“5”,qcNamһ&#xfffd;&#xfffd; 问题解决方案 let httpUrl this.httpcompany/queryFenByOrgNo…...

智能分析/视频汇聚EasyCVR安防视频融合管理云平台技术优势分析

安防行业的发展历程主要围绕视频监控技术的不断改革升级&#xff0c;从最初的模拟监控到数字监控&#xff0c;再到高清化、网络化监控&#xff0c;直至现在的智能化监控&#xff0c;每一次变革都推动了行业的快速发展。特别是近年来&#xff0c;随着AI、大数据、物联网等技术的…...

arcgis-坡度坡向分析

坡向的描述有定性和定量两种方式&#xff0c;定量是以东为0&#xff0c;顺时针递增&#xff0c;南为90&#xff0c;西为180&#xff0c;北为270等&#xff0c;范围在0&#xff5e;35959′59″之间。 定性描述有8方向法和4方向法. 8 方向为东、东南、南、西南、西、西北、北、东…...

【银河麒麟高级服务器操作系统】实际案例分析,xfsaild占用过高

了解银河麒麟操作系统更多全新产品&#xff0c;请点击访问麒麟软件产品专区&#xff1a;https://product.kylinos.cn 服务器环境及配置 物理机/虚拟机 物理机 处理器&#xff1a; Intel(R) Xeon(R) Silver 4110 CPU 2.10GHz 内存&#xff1a; 65536 MiB (64 GiB) 主板…...

JS中【setTimeout】使用注意事项总结

在JavaScript中&#xff0c;setTimeout是一个用于延迟执行某个函数的非常常见和有用的函数。使用setTimeout时&#xff0c;有几个重要的方面需要注意&#xff1a; 1. 基本用法 setTimeout的基本语法如下&#xff1a; setTimeout(function, delay);function&#xff1a;这是你…...

已解决ArkTS开发webview,html页面中的input和按钮等操作均无响应

在使用 ArkTS 开发 HarmonyOS 应用时&#xff0c;如果遇到 WebView 中的 HTML 页面元素&#xff08;如 input 输入框和 button 按钮&#xff09;无法响应操作的情况&#xff0c;通常与 WebView 的配置或权限设置有关。以下是常见的原因和解决方法。 1. 启用交互权限 确保你的…...

ChatGPT无法登录,提示我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系

1. 问题描述 之前本来已经连续稳定使用ChatGPT好几个月了&#xff0c;但是今天尝试登录ChatGPT的时候&#xff0c;却提示&#xff1a;我们检测到可疑的登录行为&#xff0c;将阻止进一步的尝试。请与管理员联系。 此外&#xff0c;我还在网上看到了一些相关的消息&#xff0c;…...

【数据结构篇】~复杂度

标题【数据结构篇】~复杂度 前言 C语言已经学完了&#xff0c;不知道大家的基础都打得怎么样了&#xff1f; 无论怎么说大家还是要保持持续学习的状态&#xff0c;来迎接接下来的挑战&#xff01; 现在进入数据结构的学习了&#xff0c;希望大家还是和之前一样积极学习新知识…...

深入理解Python中的JSON模块:解析与生成JSON数据的实用指南

深入理解Python中的JSON模块:解析与生成JSON数据的实用指南 在现代应用程序开发中,JSON(JavaScript Object Notation)已成为数据交换的标准格式。Python的json模块提供了简单而强大的工具来解析和生成JSON数据。本文将详细介绍如何使用json模块,包括基本概念、解析JSON数…...

机器学习三要素:模型、策略和算法

引言 随着人工智能技术的发展&#xff0c;机器学习已成为数据科学领域的核心组成部分。数据在机器学习方法框架中的流动&#xff0c;会按顺序经历三个过程&#xff0c;分别对应机器学习的三大要素&#xff1a;1. 模型&#xff1b;2. 策略&#xff1b;3. 算法。本文将深入探讨这…...

利用红黑树封装map和set

前言&#xff1a; 我们已经学过了如何去实现一棵完整的红黑树&#xff0c;而我们所知道的map和set容器的底层都是由红黑树实现的&#xff0c;因此我们今天来学习如何用红黑树来实现封装map和set。 本来我们需要两个红黑树去分别封装map和set&#xff0c;但是代码会有重复、冗…...

python pyqt5暂停和恢复功能

在PyQt5中&#xff0c;你可以通过结合按钮和事件处理来实现暂停和恢复功能。以下是一个简单的示例代码&#xff0c;演示了如何在PyQt5应用程序中实现暂停和恢复功能。 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget,…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...