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

Spring Boot动态配置修改全攻略

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


无需重启应用,实时更新配置的终极指南

在微服务架构中,动态配置管理是提高系统灵活性的关键技术。本文将通过4种主流方案,手把手教你实现Spring Boot应用的配置热更新。


一、动态配置的核心价值

  • 零停机更新:修复关键配置无需重启服务
  • 环境适配:不同环境自动切换参数
  • 快速响应:实时调整限流阈值/功能开关
  • 降级容错:紧急情况动态降级服务能力

二、四大动态配置方案详解

方案1:@RefreshScope + Actuator

适用场景:简单项目快速实现
实现步骤

  1. 添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter</artifactId>
</dependency>
  1. 配置类注解
@RefreshScope
@RestController
public class ConfigController {@Value("${dynamic.message}")private String message;
}
  1. 启用端点(application.yml)
management:endpoints:web:exposure:include: refresh
  1. 触发刷新
curl -X POST http://localhost:8080/actuator/refresh

优势:Spring Cloud原生支持
局限:需手动触发刷新


方案2:Spring Cloud Config Server

适用场景:多服务集中管理
架构流程

[Git仓库] ←→ [Config Server] ←→ [Client Applications]

配置中心搭建:

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApp {public static void main(String[] args) {SpringApplication.run(ConfigServerApp.class, args);}
}

客户端配置:

spring:cloud:config:uri: http://config-server:8888label: master

自动刷新:结合Spring Cloud Bus + RabbitMQ实现批量更新


方案3:Apollo配置中心

适用场景:企业级复杂系统
核心特性

  • 配置修改实时推送(HTTP长轮询)
  • 版本回滚/灰度发布
  • 权限审计

整合步骤:

  1. 客户端初始化
@ApolloConfig
private Config config;public String getConfigValue() {return config.getProperty("dynamic.key", "default");
}
  1. 动态监听
@ApolloConfigChangeListener
private void onChange(ConfigChangeEvent event) {if (event.isChanged("dynamic.key")) {// 执行热更新逻辑}
}

方案4:Envoy热加载

适用场景:Kubernetes环境
实现原理:通过Sidecar代理动态注入配置

配置示例(envoy.yaml):

layered_runtime:layers:- name: dynamic_configrtds_layer:rtds_config:resource_api_version: V3api_config_source:api_type: GRPCtransport_api_version: V3grpc_services:- envoy_grpc:cluster_name: xds_cluster

三、高级技巧

1. 配置版本控制

# 查看历史版本
git log config-repo/application.yml

2. 安全加固

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/actuator/**").hasRole("ADMIN");}
}

3. 性能优化方案

  • 本地缓存:Guava Cache
  • 压缩传输:启用gzip压缩
spring:cloud:config:compression:enabled: true

四、方案选型指南

维度@RefreshScopeConfig ServerApolloEnvoy
实施复杂度★☆☆★★☆★★★★★★☆
实时性秒级分钟级毫秒级秒级
运维成本
适合规模单应用中小集群大型系统云原生

五、最佳实践建议

  1. 配置分级存储

    • 环境相关配置:使用配置中心
    • 敏感信息:Vault加密存储
    • 静态配置:保留在本地文件
  2. 变更防御策略

try {applyNewConfig();
} catch (ValidationException e) {log.error("配置校验失败,自动回滚");rollbackConfig();
}
  1. 监控告警集成
# Prometheus指标示例
config_update_total{status="success"} 142
config_update_total{status="failure"} 3

六、未来演进方向

  1. Kubernetes原生方案:ConfigMap + Reloader
  2. Serverless架构:Lambda环境变量动态注入
  3. AI驱动配置:基于流量预测自动调参

相关文章:

Spring Boot动态配置修改全攻略

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 无需重启应用&#xff0c;实时更新配置的终极指南 在微服务架构中&#xff0c;动态配置管理是提高系统灵活性的关键技术。本文将通过4种主流方案&#xff0c…...

基于STM32、HAL库的DPS368XTSA1气压传感器 驱动程序设计

一、简介: DPS368XTSA1 是 InvenSense(TDK 集团旗下公司)生产的一款高精度数字气压传感器,专为需要精确测量气压和温度的应用场景设计。它具有超低功耗、高精度、快速响应等特点,非常适合物联网、可穿戴设备和无人机等应用。 二、硬件接口: DPS368XTSA1 引脚STM32L4XX 引…...

VMware虚拟机实例-docker启动失败

DOCKER启动失败 错误消息 [rootlocalhost docker]# yum install docker......[rootlocalhost docker]# systemctl start dockerFailed to start docker.service: Unit is masked. 错误原因 # /var/log/messagesMay 12 18:14:04 localhost systemd: Started Session 11 of user…...

计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 09.天空和背景

天空和背景 对于 3D 场景&#xff0c;通常可以通过在远处的地平线附近创造一些逼真的效果&#xff0c;来增强其真实感。我们可以采用天空盒、天空柱&#xff08;Skydome&#xff09;或天空穹&#xff08;Skydome&#xff09;等技术来模拟天空。 天空盒 天空盒&#xff08;Sk…...

CSDN博客粘贴图片失败如何解决

以前还好&#xff0c;最近越发的厉害了。 因为我最近恰好换了个网&#xff0c;所以我还以为是网络的问题。 网的问题我暂时解决不了&#xff0c;除非在加银子换个网&#xff0c;否则我搞不定。 终于找到一种貌似还行的方法&#xff0c;记录一下。 1&#xff0c;现象 CSDN博…...

USB学习【10】描述符-HID描述符

目录 1.前言2.HID描述符概述3.HID描述符组成4.报告描述符的概念和作用5.报告描述符中的通用项&#xff08;Item&#xff09; 1.前言 HID描述符功能上面相对独立一些&#xff0c;所以单分一篇专门整理。 原文链接&#xff1a;https://blog.csdn.net/weiaipan1314/article/detai…...

什么是Vim

Vim可是Linux中最强大、最受欢迎的文本编辑器之一&#xff0c;很多程序员、系统管理员都离不开它。要说清楚Vim的各种功能和用法&#xff0c;似乎有点长&#xff0c;但我会尽量用简单通俗的方式&#xff0c;把Vim的核心知识讲清楚&#xff0c;让你能一步一步开始使用它。 一、…...

【Unity3D插件】Unity3D插件之天气系统/日夜系统插件-UniStorm

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 一、前言 1.0136537.8&#xff0c;1.023651377.4&#xff0c;每天进步一点点&#xff0c;一年后就差了几十倍的差距&#xff0c;加油吧少年。 UniStorm是一款强大的动态昼夜天气系统&…...

AIGC时代的内容安全:AI检测技术如何应对新型风险挑战?

在数字时代&#xff0c;互联网内容以文本、图像、音频和视频等形式呈现爆发式增长&#xff0c;深刻塑造了信息传播的格局。然而&#xff0c;内容的快速传播也带来了严峻挑战&#xff1a;违法信息&#xff08;如涉黄、涉政&#xff09;、虚假广告、网络暴力等内容不仅威胁用户体…...

SAGAR线上网页程序生成准随机结构(SQS)

SAGAR线上网页程序地址 http://sagar.compphys.cn/sagar 页面最上方默认使用8个原子的Si为基础结构。 打开网页 选择C1模块 在下方填入结构信息&#xff0c;以及掺杂入原子和数量 这里则设置掺杂入4个C原子&#xff0c;然后点击submit&#xff0c;则会自动生成并让你下载一根压…...

Wi-Fi网络角色及功能详解

在 Wi-Fi 网络中&#xff0c;不同的角色和组件协同工作以实现无线通信。以下是 Wi-Fi 中的主要角色及其功能&#xff1a; 1. 基础设施模式&#xff08;Infrastructure Mode&#xff09; 这是最常见的 Wi-Fi 网络架构&#xff0c;包含以下核心角色&#xff1a; 接入点&#xff…...

18.three官方示例+编辑器+AI快速学习webgl_buffergeometry_points_interleaved

本实例主要讲解内容 这个Three.js示例展示了如何使用BufferGeometry和Points对象创建高效的粒子系统。通过共享内存缓冲区和交错存储顶点数据&#xff0c;实现了50万个粒子的流畅渲染&#xff0c;并为每个粒子设置基于位置的颜色。 核心技术包括&#xff1a; 使用ArrayBuffe…...

Oracle 19c 静默安装

文章目录 环境介绍安装包下载准备工作配置 yum 源安装依赖包创建用户和用户组创建必要目录关闭 SELinux配置内核参数配置资源限制配置环境变量 Oracle 19c 安装解压缩编辑相应文件执行静默安装配置监听静默创建数据库 数据库维护连接数据库 环境介绍 操作系统为 CentOS 7.9 O…...

vscode 默认环境路径

1.下面放在项目根目录上&#xff1a; .vscode/settings.json 2.settings.json内容&#xff1a; {"python.analysis.extraPaths": ["${workspaceFolder}"],"python.defaultInterpreterPath": "/shared_disk/users/lbg/envs/py310_see3d/b…...

电力系统静态安全因素与动态安全因素的区别及具体分类

电力系统的安全分析分为静态安全和动态安全两类。静态安全分析关注系统在稳态或小扰动下的安全裕度&#xff0c;动态安全分析则关注系统在大扰动或暂态过程中的稳定能力。 一、静态安全因素 频率静态安全 因素&#xff1a; 发电与负荷的静态平衡&#xff1a;需保证稳态下的发电…...

arduinoIDE核心库更新导致的ESP32开发板神秘接口更换和三方库冲突

ESP32开发遇到的问题的解决记录贴 arduinoIDE核心库更新导致的ESP32开发板神秘接口更换和三方库冲突情况描述其余解决方法&#xff08;网上查的&#xff0c;未验证&#xff09;&#xff1a; arduinoIDE核心库更新导致的ESP32开发板神秘接口更换和三方库冲突 情况描述 当我将a…...

MCU开启浮点计算FPU

FPU 测试 1. FPU 简介2. 协处理器控制寄存器&#xff08;CPACR&#xff09;3. 开启FPU4. 验证FPU&#xff08;Julia 分形实验&#xff09; 1. FPU 简介 FPU 即浮点运算单元&#xff08;Float Point Unit&#xff09;。浮点运算&#xff0c;对于定点 CPU&#xff08;没有 FPU 的…...

vue3+three 搭建平面上滚动旋转的几何体

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vue3three 搭建平面上滚动旋转的几何体”。 在现代前端开发中&#xff0c;结合 Vue 3 的响应式能力和 Three.js 的强大 3D 渲染能力&#xff0c;可以轻松构建出令人惊叹的交互式三维场景。本文将带你一步步实现一…...

《Python星球日记》 第59天:生成对抗网络(GAN)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、引言二、GAN的基本原理1. 天才的创意:生成器与判别器的博弈过程2. 训练流程与目标函数三、常见GAN变体1. DCGAN (深度卷积生成对抗网络)2.…...

用户态到内核态:Linux信号传递的九重门(二)

1. 保存信号 1.1. 信号其他相关常见概念 实际执⾏信号的处理动作称为信号递达(Delivery)。 信号从产⽣到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产⽣时将保持在未决状态,直到进程解除对此信号的阻塞,才执⾏递达的动作。 1.…...

【深度学习-Day 9】机器学习核心概念入门:监督、无监督与强化学习全解析

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

android特许权限调试

新aosp中新应用无权限&#xff0c;但需要正常运行&#xff0c;来排查权限问题 ro.control_privapp_permissionslog这样做可确保设备保持工作状态&#xff0c;同时仍然提供违规行为列表。错误消息格式如下&#xff1a; PackageManager: Privileged permission {PERMISSION_NAM…...

如何避免Java中的ConcurrentModificationException

引言 在Java开发中&#xff0c;操作集合&#xff08;如List、Set、Map&#xff09;时&#xff0c;许多开发者都遇到过ConcurrentModificationException。这个异常通常出现在遍历集合的同时尝试修改其结构&#xff08;如添加或删除元素&#xff09;。本文将深入探讨这一异常的根…...

5月12日复盘-RNN

5月12日复盘 二、RNN 模型 1.先导 1.1 为什么需要循环神经网络 RNN ​ 上图是一幅全连接神经网络图&#xff0c;我们可以看到输入层-隐藏层-输出层&#xff0c;他们每一层之间是相互独立地&#xff0c;(框框里面代表同一层)&#xff0c;每一次输入生成一个节点&#xff0c;同…...

linux小主机搭建自己的nas(二)docker卸载navidrome

测试的时候安装了一个音乐播放器在root下面&#xff0c;现在先给他删掉 停止并删除容器 docker ps -a | grep navidrome# 停止并删除容器&#xff08;替换 YOUR_CONTAINER_NAME 为实际名称&#xff09; docker stop YOUR_CONTAINER_NAME && docker rm YOUR_CONTAINER…...

.NET 在鸿蒙系统上的适配现状

目录 .NET 在鸿蒙系统上的适配现状 鸿蒙系统对虚拟机的限制与.NET的适配挑战 NativeAOT 在鸿蒙系统中的适配原理与实现方式 已知问题与解决方案&#xff1a;鸿蒙系统中的 syscall 限制 鸿蒙系统适配中的技术难点与解决方案 跨平台编译的挑战与应对策略 依赖库管理与兼容…...

01-centos离线升级至almalinux

官网链接官方代码调整&#xff1a; 1. vi repositories/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py with mounting.BindMount(sourceuserspace_dir, targetos.path.join(context.base_dir, install_root_dir.lstrip(/))):_restore_persi…...

Python 处理图像并生成 JSONL 元数据文件 - 固定text版本

Python 处理图像并生成 JSONL 元数据文件 - 固定text版本 flyfish JSONL&#xff08;JSON Lines&#xff09;简介 JSONL&#xff08;JSON Lines&#xff0c;也称为 newline-delimited JSON&#xff09;是一种轻量级的数据序列化格式&#xff0c;由一系列独立的 JSON 对象组成…...

uniapp使用npm下载

uniapp的项目在使用HBuilder X创建时是不会有node_modules文件夹的&#xff0c;如下图所示&#xff1a; 但是uni-app不管基于哪个框架&#xff0c;它内部一定是有node.js的&#xff0c;否则没有办法去实现框架层面的一些东西&#xff0c;只是说它略微有点差异。具体差异表现在…...

前端面试每日三题 - Day 31

这是我为准备前端/全栈开发工程师面试整理的第30天每日三题练习&#xff1a; ✅ 题目1&#xff1a;WebAssembly前端深度实践指南 核心优势对比 维度JavaScriptWebAssembly解析速度需要解析编译预编译二进制执行性能动态类型较慢静态类型接近原生内存管理自动垃圾回收手动内存…...

通义千问席卷日本!开源界“卷王”阿里通义千问成为日本AI发展新基石

据日本经济新闻&#xff08;NIKKEI&#xff09;报道&#xff0c;通义千问已成为日本AI开发的新基础&#xff0c;其影响力正逐步扩大&#xff0c;深刻改变着日本AI产业的格局。 同时&#xff0c;日本经济新闻将通义千问Qwen2.5-Max列为全球AI模型综合评测第六名&#xff0c;不仅…...

01 安装CANoe

文章目录 0、Introduction1、Install CANoe1.1、Unlock Package1.2、Kick autorun1.3、Install CANoe1.4、Wait Download1.5、Restart application1.6、Vector CANoe Installation1.7、Installation Successfully1.8、Open CANoe 2、Install Drivers2.1、Unlock Package2.2、Ki…...

AutoDL租用服务器教程

在跑ai模型的时候&#xff0c;容易遇到算力不够的情况。此时便需要租用服务器。autodl是个较为便宜的服务器租用平台&#xff0c;h20仅需七点几元每小时。下面是简单的介绍。 打开网站AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL&#xff0c;并登录账号 登录后&#xff…...

【人工智能-agent】--Dify中MCP工具存数据到MySQL

本文记录的工作如下&#xff1a; 自定义MCP工具&#xff0c;爬取我的钢铁网数据爬取的数据插值处理自定义MCP工具&#xff0c;把爬取到的数据&#xff08;str&#xff09;存入本地excel表格中自定义MCP工具&#xff0c;把爬取到的数据&#xff08;str&#xff09;存入本地MySQ…...

ctfshow——web入门351~356

SSRF没有出网的部分 web入门351 $ch curl_init($url); 作用&#xff1a;初始化一个 cURL 会话&#xff0c;并设置目标 URL。解释&#xff1a; curl_init($url) 创建一个新的 cURL 资源&#xff0c;并将其与 $url 关联。这里的 $url 是用户提供的&#xff0c;因此目标地址完全…...

堆复习(C语言版)

目录 1.树的相关概念&#xff1a; 2.堆的实现 3.TopK问题 4.总结 1.树的相关概念&#xff1a; 1.结点的度&#xff1a;一个结点含有的子树&#xff08;孩子&#xff09;个数。 A的度为6 2.叶结点or终端结点&#xff1a;度为0的结点。 J、K、L、H、I 都是叶子结点 3.非终端结…...

解决LangChain4j报错HTTP/1.1 header parser received no bytes

问题描述 当使用langchain4j-open-ai调用自己部署的大模型服务时报错&#xff1a; public static void main(String[] args) {OpenAiChatModel model OpenAiChatModel.builder().apiKey("none").modelName("qwen2.5-instruct").baseUrl("http://19…...

深入解析MySQL联合查询(UNION):案例与实战技巧

在数据库操作中&#xff0c;查询是最常用的操作之一。MySQL提供了强大的查询功能&#xff0c;联合查询&#xff08;UNION&#xff09;是其中非常有用的一项操作。联合查询可以将多个查询结果合并成一个结果集&#xff0c;使得从不同来源的数据整合变得更加简单高效。本文将详细…...

[计算机科学#14]:数据结构

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a;数据结构是计算机科学中的核心概念&#xff0c;用于…...

【计算机网络】HTTP 协议

HTTP是什么&#xff1f; HTTP 全称是“超文本传输协议”&#xff0c;是互联网上应用最广泛的应用层协议&#xff0c;用于客户端和服务器之间的通信。 HTTP 的实现在 HTTP 3.0之前都是基于传输层的 TCP 实现的&#xff0c; HTTP 3.0 改为了基于 UDP 实现&#xff0c;但是现在市…...

原生的 XMLHttpRequest 和基于 jQuery 的 $.ajax 方法的异同之处以及使用场景

近期参与一个项目的开发&#xff0c;发现项目中的ajax请求有两种不同的写法&#xff0c;查询了下两种写法的异同之处以及使用场景。 下面将从以下两段简单代码进行异同之处的分析及使用场景的介绍&#xff1a; // 写法一&#xff1a; var xhr new XMLHttpRequest(); xhr.open…...

横向移动(上)

横向移动&#xff08;上&#xff09; 横向移动指的是攻击者在内网中获得初始访问权限之后&#xff0c;通过相关技术扩大敏感数据和高价值资产权限的行为 常见的横向移动的方式 1.通过web漏洞 2.通过远程桌面 3.通过账号密码 4.通过不安全的配置 5.通过系统漏洞 利用远控…...

关于 js:7. 模块化、构建与工具链

一、模块系统&#xff1a;CommonJS、ESM、UMD 模块系统的目标&#xff1a; 将代码拆分为独立的逻辑单元&#xff08;模块&#xff09;&#xff0c;实现封装、复用、依赖管理。 在 Web 前端/Node 中&#xff0c;因为 JavaScript 起初没有模块机制&#xff0c;因此出现了多个模…...

一次IPA被破解后的教训(附Ipa Guard等混淆工具实测)

一行代码的疏忽&#xff0c;一个默认的类名&#xff0c;一个未混淆的资源路径&#xff0c;都可能成为攻击者入侵的入口。 背景&#xff1a;一次“不值一提”的上线&#xff0c;成了代价惨重的经验 故事的起点很简单&#xff1a;我们给销售部门做了一款小型内部演示 App&#x…...

麒麟系统安装.net core环境变量

本文主要记录在麒麟系统上安装.net core的运行环境&#xff0c;这里使用的是麒麟V10桌面版&#xff0c;后续测试服务器到了之后再使用服务器版进行安装测试。 环境安装 下载 这里由于是桌面版&#xff0c;我直接使用浏览器下的包&#xff0c;下完之后在终端中安装。 安装 1…...

如何使用 React Hooks 替代类组件的生命周期方法?

文章目录 1. 引言2. useEffect 概述3. 模拟类组件的生命周期方法3.1 模拟 componentDidMount3.2 模拟 componentDidUpdate3.3 模拟 componentWillUnmount 4. 多个 useEffect 的使用5. 注意事项6. 总结 1. 引言 在 React 16.8 版本之前&#xff0c;开发者主要通过类组件&#x…...

windows 在安装 Ubuntu-20.04 显示操作超时解决办法

1. 问题概述与原因分析 在我们用下面命令安装 Ubuntu-20.04 时系统显示操作超时&#xff1a; wsl --install -d Ubuntu-20.04大概率是没打开 Windows 虚拟机监控程序平台&#xff0c;可以在控制面板–>程序和功能里面打开 2. 解决办法与步骤 解决方式如下&#xff1a; 我…...

Spring Boot中Redis序列化配置详解

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在使用Spring Boot集成Redis时&#xff0c;序列化方式的选择直接影响数据存储的效率和系统兼容性。默认的JDK序列化存在可读性差、存储空间大等问题&am…...

OpenCV进阶操作:光流估计

文章目录 前言一、光流估计1、光流估计是什么&#xff1f;2、光流估计的前提&#xff1f;1&#xff09;亮度恒定2&#xff09;小运动3&#xff09;空间一致 3、OpenCV中的经典光流算法1&#xff09;Lucas-Kanade方法&#xff08;稀疏光流&#xff09;2&#xff09; Farneback方…...

2025年渗透测试面试题总结-渗透测试红队面试八(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 渗透测试红队面试八 二百一十一、常见中间件解析漏洞利用方式 二百一十二、MySQL用户密码存储与加密 …...