Spring Cloud Bus 被国内很多都翻译为消息总线。大家可以将它理解为管理和传播所有分布式项目中的消息即可,其实本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ。利用Bus的机制可以做很多的事情,其中配置中心客户端刷新就是典型的应用场景之一(可以在不重启微服务的情况下,更新配置文件,让其立刻生效),我们用一张图来描述Bus在配置中心使用的机制。
- 提交配置后发送post方式的/bus-refresh请求给Config客户端
- Config客户端接收到请求从Server端更新配置并且发送消息给消息总线
- 消息总线接到消息并通知给其它客户端
- 其它客户端接收到通知,请求Server端获取最新配置
- 全部客户端均获取到最新的配置