关于SpringCloud的Bus消息总线图文详解
分布式自动刷新配置功能
Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新。

Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。
Spring Clud Bus目前支持RabbitMQ和Kafka。
Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当作微服务间的通信通道。

什么是总线
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。
基本原理
ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其它监听同一Topic的服务就能得到通知,然后去更新自身的配置。
架构设计思想:
- 1)利用消息总线触发一个客户端/bus/refresh,而刷新所有客户端的配置

- 2)利用消息总线触发一个服务端ConfigServer的/bus/refresh端点,而刷新所有客户端的配置

图二的架构显然更加适合,图一不适合的原因如下:
1.打破了微服务的职责单一性,因为微服务本身是业务模块,它本不应该承担配置刷新的职责。
2.破坏了微服务各节点的对等性。
3.有一定的局限性。例如,微服务在迁移时,它的网络地址常常会发生变化,此时如果想要做到自动刷新,那就会增加更多的修改
到此这篇关于关于SpringCloud的Bus消息总线图文详解的文章就介绍到这了,更多相关SpringCloud的Bus消息总线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java C++算法题解leetcode801使序列递增的最小交换次数
这篇文章主要为大家介绍了Java C++题解leetcode801使序列递增的最小交换次数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10
关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)
这篇文章主要介绍了MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01
Java中出现InterruptedException异常的原因及解决方案
在Java多线程编程中,InterruptedException是一个常见但又容易被忽视的异常,它通常出现在线程被外部中断时,例如调用Thread.interrupt() 或线程池关闭时,本文将通过一个实际的日志案例,分析InterruptedException 的产生原因、影响,需要的朋友可以参考下2025-06-06
SpringBoot调用对方webService接口的几种方法示例
平常我们开发调用接口一般会用到几种数据格式,比如有restful的,这个是目前最流行的,也是最简单开发的,还有一种就是webservice数据格式,本文给大家介绍了几种SpringBoot调用对方webService接口的方法,文中有相关的代码示例供大家参考,需要的朋友可以参考下2023-11-11


最新评论