Spring Cloud Config配置属性刷新之自动刷新

接上一篇的博客。Spring Cloud Config配置属性自动刷新,修改完GitHub仓库的配置属性后Config client会自动拉取来更新配置属性。

1、先要给Config client的Controller类加上RefreshScope注解。

2、Config Server中处理webhook

Spring Cloud Config配置属性刷新之自动刷新

加上monitor依赖,待会会用上的。用于对接GitHub的webhook,触发自动刷新配置。

“/monitor“端点使用Spring Cloud Stream发布通知消息给参与的Config Server客户端。

为了避免硬编码特定的消息实现,监控器会作为Spring Cloud Stream的源,发布消息到流中并让底层的绑定机制处理消息发送的特定功能。这里使用RabbitMQ,将依赖添加到Config Server的pom文件。用于对接rabbitMQ来广播服务更新事件,通知相关的服务进行配置更新。

3、Config Server的application.yml配置

Spring Cloud Config配置属性刷新之自动刷新

本地上面运行可以不用配置rabbitmq的地址。

3、在Config Server和Config Client中添加依赖启动自动刷新 spring cloud bus

Spring Cloud Config配置属性刷新之自动刷新

Spring Cloud Config配置属性刷新之自动刷新

 4、在GitHub上面配置webhook

Spring Cloud Config配置属性刷新之自动刷新

Payload URL 不可以写成本地的Config Server的端口(localhost:8888),我用的是ngrok转成外网地址。ngrok可以网上搜索一下怎么使用。

/monitor端点是之前在Config Server依赖中启用的端点。

5、将Config Server 和Config Client启动起来可以看到本地的Rabbitmq上面有两个队列

Spring Cloud Config配置属性刷新之自动刷新

6、再尝试修改GitHub仓库的配置属性,Config Client会自动刷新,控制台可以看到信息。使用curl 来查看可以看到配置已经更新。

Spring Cloud Config配置属性刷新之自动刷新

Spring Cloud Config配置属性刷新之自动刷新

到这里就完成了自动刷新的配置。