信息发布→ 登录 注册 退出

Java Spring Cloud Bus 实现配置实时更新详解

发布时间:2026-01-11

点击量:
目录
  • 背景
  • 实现原理
  • ConfigServer改造
    • 1. pom.xml增加以下依赖
    • 2. 配置文件中配置暴露接口
  • Service改造
    • 1. pom.xml增加以下依赖
    • 2. 通过@RefreshScope声明配置刷新时需要重新注入
  • 测试
    • 总结

      背景

      使用Spring Cloud Config Server,启动Service时会从配置中心取配置文件,并注入到应用中,如果在Service运行过程中想更新配置,需要使用Spring Cloud Bus配合实现实时更新。

      实现原理

      需要借助RabbitMQ等消息中间件来实现服务间的通讯

      ConfigServer改造

      目标:使ConfigServer暴露bus-refresh接口,通过bus通知服务更新配置

      1. pom.xml增加以下依赖

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

      2. 配置文件中配置暴露接口

      management.endpoints.web.exposure.include=bus-refresh

      Service改造

      1. pom.xml增加以下依赖

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

      2. 通过@RefreshScope声明配置刷新时需要重新注入

      @RefreshScope
      @Controller
      public class LblController {

      测试

      1. 修改git仓库上的配置文件

      Service配置没有更新

      2. 调用http://localhost:8081/actuator/bus-refresh(POST)

      Service配置更新

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

      在线客服
      服务热线

      服务热线

      4008888355

      微信咨询
      二维码
      返回顶部
      ×二维码

      截屏,微信识别二维码

      打开微信

      微信号已复制,请打开微信添加咨询详情!