什么是消息总线
在微服务架构的系统中, 我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来, 由于该主题中产生的消息会被所有实例监听和消费, 所以我们称它为消息总线
这里的消息代理就是指项目中使用的RabbitMQ
简介
Springcloud Bus可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。在项目中我们通过使用Springcloud Bus与Springcloud Config结合,以RabbitMq作为消息代理,实现应用配置的自动刷新。整体架构图如下所示: 架构图当我们在远端Git修改了配置之后,自动访问Config Server的/bus-refresh接口,Config Server就会把修改的配置发送给rabbitmq,之后rabbitmq把要更改的配置推送给各个客户端,从而实现了配置的自动刷新。
实现流程
-
添加pom引用
引用 -
修改配置文件:添加rabbitmq配置
rabbitmq配置 -
暴露/bus-refresh接口
暴露接口 - 当我们修改配置之后,访问接口,发现配置已经改变;所以在不重启服务的情况下自动刷新了配置
改进
之前我们每次更改配置都要手动访问/bus-refresh接口;然而大部分远端Git(如Github)都提供了webHook功能,即我们每更改一次配置,就自动向某一接口发送一次请求,这样就不要每次都手动访问/bus-refresh接口了
网友评论