SpringCloud-SpringCloud Bus服务总线的介绍(Day9)

Spring Cloud Bus服务总线

在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。
Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新。Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。Spring Clud Bus目前支持RabbitMQ和Kafka消息队列中间件。
Config Client实例都监听MQ中同一个topic(默认是Spring Cloud Bus)。当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其它监听同一Topic的服务就能得到通知,然后去更新自身的配置。

使用Spring Cloud Bus的两种方式

通知Config服务端

推荐使用·这种方式,我们仅通知Config服务端,服务端会同时通知所有的客户端进行配置的更新。这样的设置避免了依次调用客户端进行更新而产生工作量问题。
在这里插入图片描述
在这里插入图片描述

通知Config客户端(客户端传递)

不推荐使用这种方式,我们的客户端本来就有业务在运行,如果那个需要传递消息的客户端节点发生了宕机或其他的问题的话,我们的动态刷新就做不到全局。其次就是破坏了服务端各个节点的功能对等性,最后还有在服务进行迁移是,网络地址发生变化,就会增加更多的修改工作量。
在这里插入图片描述
在这里插入图片描述