SpringCloud微服务之动态自动更新配置(三)

本文介绍如何使用 Spring Cloud Bus 和 WebHooks 实现配置的动态更新。首先通过 Spring Cloud Bus 实现配置文件的自动刷新,接着配置 WebHooks 自动触发配置更新。涉及 Spring Cloud Bus 的配置和依赖,以及 WebHooks 的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 先看一张动态自动更新原理图:
    这里写图片描述

SpringCloud Bus 负责管理消息队列,实现配置传输给各个服务
WebHook 实现更新配置时自动发送 /bus-refresh 请求

  • 上面两种配置的结合,将实现动态自动更新配置。
一、SpringCloud Bus使用详解
  1. 在config server中添加依赖和配置:
 <!-- spring cloud bus -->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
  </dependency>

  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-monitor</artifactId>
  </dependency>
 配置:
    # 本地安装是默认的localhost:5672
    spring.rabbitmq.addresses=ip地址:5672
    management.endpoints.web.exposure.include=*

2. config client 端配置(也就是order服务)

  • 添加加依赖:
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
  • 添加配置:
    spring.rabbitmq.addresses=ip地址:5672

    我的 MQ 在服务器的Docker上部署,因此需要配置公网IP,否则可以不配置,默认就可以

  • 在需要进行动态刷新配置的地方使用 @RefreshScope 注解

3、 启动config server 和 order 服务
访问order服务的获取远程git的配置。然后修改配置,发送post请求”localhost:8080/actuator/bus-refresh”。 这时候修改后的配置就已经更新到order服务。访问order服务会发现配置已经改变。

二、使用 WebHooks实动态更新配置

github上集成了该功能,因此只需在config-repo中配置WebHooks即可。
配置WebHooks的ip 需要是公网ip,该公网ip 对应这本机的 order服务的ip:port。
这个公网ip 可以通过在 netapp.cn 网站上生成。还用配置WebHooks时Content Type是 application/json 。
此时再修改远程git 内容,order服务会自动获取到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值