Spring Cloud -- 3 分布式配置中心

最新扣子(coze)案例:在coze上用DeepSeek+私有数据库、知识库,创建你的专属智能体 Gartner预测,到2026年,70%的企业将通过Al知识库实现「组织记忆外化」。数字化时代,数据已成为企业发展的核心资产。我们通过人工智能将知识库从“静态存储"升级为“智能服务”。让"沉睡宝藏"焕发新生,助力企业突破数据困局。 阅读详情

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。

构建配置中心项目:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>


<groupId>com.sun</groupId>
<artifactId>config-server</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>


<name>config-server</name>
<description>Spring Cloud project</description>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>


<dependencies>


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


<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>


</dependencies>


<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


</project>

2.在启动类上加上@EnableConfigServer注解,开启Config Server


3.application.properties

我们只需要设置属性spring.profiles.active=native,Config Server会默认从应用的src/main/resource目录下检索配置文件。也可以通过spring.cloud.config.server.native.searchLocations=file:F:/properties/属性来指定配置文件的位置。


我们在resource下建立几个文件:


里面内容分别为control=Code changes the world 1;control=Code changes the world 2;control=Code changes the world 3;


这样我们的简单的注册中心就写好了。

接下来,随意在我们创建一个springBoot项目来获取配置中心的配置信息

pmo.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>


<groupId>com.sun</groupId>
<artifactId>config-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>


<name>config-client</name>
<description>Spring Cloud project</description>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>


<dependencies>


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


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


<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>


</dependencies>


<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


</project>

2.创建bootstrap.properties配置,来指定config server。这里需要格外注意:上面这些属性必须配置在bootstrap.properties中,config部分内容才能被正确加载。因为config的相关配置会先于application.properties,而bootstrap.properties的加载也是先于application.properties。


创建一个类来获取配置中心里的内容:

通过@Value("${from}")绑定配置服务中配置的control属性。

@RestController=@ResponseBody + @Controller

@RefreshScope表示,开启refresh机制, 需要给加载变量的类上面加载@RefreshScope注解,其它代码可不做任何改变,那么在客户端执行/refresh的时候就会更新此类下面的变量值


打开http://localhost:1111/control页面显示:


显示出了sun-test中的内容

番外篇:

配置管理我们也可以把他看成是一个微服务注册到注册中心里面,当初一个服务提供者,当注册多个的时候就能实现高可用。

当我们把config-server注册服务的时候在pom.xml内加入:

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

配置文件改成:


在启动类上加上@EnableDiscoveryClient注解,用来将config-server注册到上面配置的服务注册中心上去。

这样我们的服务就完成了。

消费者改造:

消费者也在启动类上加上@EnableDiscoveryClient注解,注册到注册中心,取配置文件中的内容和上文一样。

但当我们的配置文件修改之后消费者需要同步刷新配置内容的话需要加入一个功能模块,在pom.xml中加入:


监控模块,其中包含了/refresh刷新API。

在模块上加上

@RefreshScope注解启动动态刷新。

当我们更改了配置文件的时候,用POST请求一下http://localhost:7002/refresh会显示:


证明control内容已更新。再次访问http://localhost:7002/control就会显示sun-dev.properties配置文件中修改过的内容

基于逆向工程的中国裁判文书网爬虫技术深度解析 本文详细介绍了中国裁判文书网爬虫的开发过程,涵盖了从基础爬取到高级功能的完整解决方案。逆向工程分析:理解网站的反爬机制和加密逻辑浏览器自动化:使用Playwright模拟真实用户行为参数加密:通过JavaScript执行环境生成加密参数智能调度:控制请求频率,避免被检测错误处理:完善的异常处理和重试机制。 阅读详情

相关推荐

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5079

聊聊使用@RefreshScope与nacos2整合踩到的坑

本文的素材来源于朋友整合nacos2作为配置中心进行动态刷新时,踩到的坑。他当时遇到的问题,如下截图因为那段时间比较忙,于是我在没看朋友项目代码的基础上,就找个了看似解决方案的答案,扔了过去后面朋友加了这个配置,问题果然没有解决。后面就抽了一点时间,要了他的项目代码来看下。本文不算是@RefreshScope与nacos2整合踩到的坑,主要还是动态代理方面的知识,题目有点标题党了。有些视频讲nacos动态刷新时,基本上都是举controller上@RerfreshScope +@value来讲解。

kingwinstar的博客 1051

告别卡顿!手把手教你用北鲲云超算平台图形化提交COMSOL仿真任务(附RDP连接技巧)

本文详细介绍了如何利用北鲲云超算平台图形化提交COMSOL仿真任务,解决本地计算资源不足导致的卡顿问题。通过云端高性能计算,用户可轻松配置多核CPU和大内存资源,实现高效仿真计算,并附有RDP连接优化技巧,提升远程操作体验。

weixin_42519781的博客 379

Spring中@RefreshScope用法原理

具体来说,@RefreshScope 注解可以用于将配置属性绑定到一个类或方法上,当配置信息发生变化时,Spring 会自动刷新这些属性,并重新绑定到对应的类或方法上。在默认情况下,Spring 会使用 getSingleton() 方法获取单例对象,但是在这个方法中,我们可以进行一些特殊的操作,例如重新加载配置属性。我们将使用 @RefreshScope 注解将时间戳绑定到配置信息上,当配置信息发生变化时,时间戳会自动刷新。接收到通知后,服务会重新加载配置信息,并重新绑定到对应的类或方法上。

zhao_god的专栏 1874

IoT 平台架构全景图:从设备到 AI 的完整技术体系深度解析

随着物联网设备规模进入百万级时代,IoT 平台架构已经从简单的设备接入系统演变为完整的数据平台。本文从系统架构师视角,深度解析 IoT 平台的完整技术体系,包括设备接入、MQTT 通信、消息流平台、数据平台与 AI 决策系统,并结合主流云平台实践,构建从设备到 AI 的完整 AIoT 架构认知。

moton2017的博客 856

无需UMAT:基于Abaqus内置模型实现形状记忆聚合物结构的热-力耦合仿真

本文详细介绍了如何利用Abaqus内置模型实现形状记忆聚合物(SMP)的热-力耦合仿真,无需编写复杂的UMAT子程序。通过广义Maxwell模型和Neo-Hookean模型的组合应用,结合完整的热-力耦合分析流程,帮助工程师高效模拟SMP的形状记忆行为。文章还提供了工程应用案例和常见问题解决方案,为相关领域的研究和设计提供实用指导。

weixin_34005090的博客 116

Cannot resolve com.sun:tools:1.8.0

今天接手了一个使用 jdk11 的项目,而我之前做的项目一直是使用的 jdk8,从 git 拉下来之后想着问题不大,然后就开始下载 maven 依赖。 接着控制台就输出了这一行:Cannot resolve com.sun:tools:1.8.0 由于是第一次见到这个依赖,立马想到的就是进行全局搜索,看看这个依赖是在哪个 pom 文件下 但并没有找到。。。 于是乎点开 idea 右侧工具栏的 maven列表,发现是在 org.codehaus.groovy:groovy-all:pom:2.5.

weixin_44219282的博客 1万+

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

解决 @RefreshScope 导致定时任务注解 @Scheduled 失效

之前在一个技术微信群看到一个伙伴提了一个问题。那就是 Spring Cloud 项目在标注了 @RefreshScope 与 @Configuration 类中 @Scheduled 的方法。当配置中心修改了配置时,这个定时调度会失效。下面我们来看一下案方现场。...

carl.zhao的专栏 5762

在SAP系统中,公司间关联交易(Intercompany Transactions)或内部往来主要有三种经典的实现模式。这些模式的选择取决于企业的业务复杂度、自动化需求以及对实时性的要求

SAP系统中公司间关联交易的三种实现模式分析:1)手工记账模式(FB60/FB70)适用于低频交易,灵活性高但易出错;2)SD/MM跨公司销售采购模式(VA01/VF01/ME21N)适用于真实业务流转,业务财务集成度高;3)自动清算模式(F.13/ICR)适合高频交易集团企业,支持实时自动对账。关键成功要素包括正确配置贸易伙伴字段、统驭科目及专用凭证类型。建议根据企业规模、业务复杂度及自动化需求选择合适模式,其中大型集团优先考虑自动对账方案以确保合并报表准确性。

金牌架构师 552

基于Simulink的固态变压器(SST)多级协同控制

本文基于Simulink平台,详细介绍了固态变压器(SST)多级协同控制的建模与仿真方法。针对SST三级架构(AC-DC、DC-DC、DC-AC)存在的级间耦合问题,提出了纵向解耦与横向联动的协同控制策略。通过搭建10kV/400V级联型SST系统模型,实现了输入电压波动±20%或负载0-100%跳变时直流母线电压波动小于2%的控制目标。文章详细讲解了Simulink建模步骤、控制算法推导及工程部署建议,包括功率前馈控制、虚拟惯性算法等关键技术。仿真结果表明,该协同控制方案能有效抑制负载突变时的电压波动,为

MHD0815的博客 214

eclipse中maven项目pom.xml文件报错:Missing artifact com.sun:tools:jar:1.8.0解决

eclipse中maven项目pom.xml文件报错:Missing artifact com.sun:tools:jar:1.8.0解决错误解决方法 错误 习惯使用eclipse,今天导入一个maven项目后,pom文件提示如下错误: 解决方法 看到pom文件提示缺少jar包,首先想到了引入jar包来解决 <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId&

码农搬砖盖大楼 4336

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

Code_流苏:在代码中寻诗意,在实践中觅真知 932

【Spring Cloud Alibaba】基于Spring Boot 3.x 搭建教程

本教程主要介绍如何基于搭建一个微服务项目,适合熟练使用框架,并且有进一步尝试新版本及学习搭建微服务项目的同学。致力于提供微服务开发的一站式解决方案。该项目包含开发分布式应用微服务的必需组件,方便开发者通过编程模型轻松使用这些组件来开发分布式应用服务。依托,我们只需要添加一些注解和少量配置,就可以将应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。此外,阿里云同时还提供了Spring Cloud Alibaba 企业版。

2611_94926860的博客 453

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

3.Spring Cloud构建微服务架构(三)分布式配置中心(动态刷新)

3.Spring Cloud构建微服务架构(三)分布式配置中心(动态刷新)

工程师小哥的博客 475

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring Cloud Alibaba快速入门

本文介绍了微服务架构的优势与挑战,对比了Spring Cloud与Spring Cloud Alibaba的关系,并系统梳理了架构演进过程:从单体架构到集群架构,最终发展为分布式架构。文章详细分析了每种架构的优缺点,单体架构简单但扩展性差,分布式架构灵活但复杂度高。

weixin_46425661的博客 966

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Spring Cloud Alibaba Nacos 服务注册发现和分布式配置中心

本文介绍了Spring Cloud Alibaba Nacos的服务注册发现和分布式配置中心功能。主要内容包括:版本适配关系,推荐使用Spring Boot 3.2.x + SCA 2023.0.1.0 + Nacos 2.3.2组合;Nacos服务端的两种部署方式(单机模式和简化生产模式);Spring Boot项目整合步骤,包括依赖添加、配置文件和启动类注解;以及动态配置中心的核心功能演示,展示了如何通过@RefreshScope实现配置热更新。文章提供了详细的配置示例和操作指导,帮助开发者快速上手Na

hbx98的博客 1000

Spring Cloud Config Server 入门:5分钟搭建分布式配置中心

Spring Cloud Config Server 是一个功能强大的分布式配置中心,它能够集中管理所有环境中应用程序的外部配置。通过使用 Spring Cloud Config Server,开发团队可以轻松实现配置的版本控制、动态更新和安全管理,极大提升微服务架构的灵活性和可维护性。 ## 🚀 为什么选择 Spring Cloud Config Server? Spring Cloud

gitblog_00315的博客 988

若依微服务RuoYi、RuoYi-Vue、RuoYi-Cloud微服务

若依微服务RuoYi、RuoYi-Vue、RuoYi-Cloud微服务

xiaodi824的博客 3580

Spring Cloud 2025 架构:微服务时代的新范式

服务边界:合理划分服务边界,避免服务过大或过小API 设计:设计清晰、稳定的 API,版本管理数据管理:采用数据库每个服务的策略,避免数据耦合容错设计:实现断路器、重试、超时等容错机制安全设计:实现多层次的安全防护Spring Cloud 2025 为构建现代化的微服务架构提供了强大的工具和框架,通过合理使用这些工具和框架,开发者可以构建更高性能、更可靠、更安全的微服务系统。

alex_goden的博客 2742
上一篇: Spring Cloud -- 2 断路器
下一篇: Spring Cloud -- 4 服务网关
JavaMrSun
博客等级 码龄9年 27粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值