SpringCloud Bus集成WebHooks动态刷新配置(五)

使用RabbitMQ、Bus框架和WebHooks实现配置文件自动刷新,无需在启动项目

实现原理图:

在这里插入图片描述
配置文件放在远端Git中,现在远端Git配置文件已经进行了修改,通过访问Bus提供/bus-refresh接口来通知Config配置中心更新配置文件,通过消息队列给客户端通知配置文件已修改,客户端接收到消息后修改配置。

ConfigServer端(Config配置中心)

  1. 配置pom.xml文件添RabbitMQ依赖
  2. 配置application.yml文件
  3. WebHooks配置

注意: 记得配上web的依赖否则连不上mq

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

在application.yml中配置连接RabbitMQ服务器的地址端口还有账密码,management include中的 配置是暴露服务器所有的接口。其中有一个重要的接口就是 /bus-refresh ,就是通知MQ消息队列,配置文件更改了,然后MQ消息队列通知客户端更改配置。

spring:
	rabbitmq:
	    host: 192.168.99.100
	    port: 5672
	    username: guest
	    password: guest
management:
  endpoints:
    web:
      exposure:
        include: "*"

通过访问localhost:8080/actuator,8080是 config配置中心端口后面加上actuator, 就可查看所有暴露的接口,大框框里就是/bus-refresh,待会通知客户端修改配置就靠它了。

在这里插入图片描述

在github里配置WebHooks,在我的仓库里面打开Setting —>WebHooks,没有配置WebHooks过就点Add,首先配置URL,url必须是域名,主机地址是访问不到的,域名可以去 NATAPP-内网穿透 注册一个免费的,域名后面加上/actuator/bus-refresh,调用通知配置更新的接口。
在这里插入图片描述
配置好了WebHooks,当我们修改github上的配置文件,点击提交就是发出一个post请求URL,URL就是在WebHooks填写的URL。接下查看下RabbitMQ队列的消息,波澜起伏的线段就是已经通知客户端了,刷新页面来看修改的配置信息。

在这里插入图片描述

在使用WebHooks是会遇到400,OutTime,@RefreshScope(更新作用域)等一些坑,接下来就是解决这些问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值