• SpringCloud——消息总线——Bus


    1.什么是总线?

            我们在微服务的项目中,通常会构建一个共同的消息主题,然后需要的服务可以连接上来,该主题中产生的消息会被监听和消费,这种我们称为消息总线。

            SpringCloud Bus 配合SpringCloud Config使用可以实现配置的动态刷新。

    2.两种实现方式

            Bus目前支持RabbitMQ和Kafka。

            第一种就是我们利用/bus/refresh先触发一个客户端获取最新配置,然后由此客户端发送消息给总线,从而传播去修改其他的客户端配置。

            第二种就是利用/bush/refresh去触发服务端(Config Server)配置的暴露bus刷新配置的端点('bus-refresh'),然后由服务端发送消息给总线,从而传播去刷新所有客户端的配置。  

    显然我们最好选择第二种,原因有以下两点:

    • 客户端服务模块本身是业务模块,不应该承担发送消息的职责。

    • 破坏了客户端各微服务的对等性。

    3.整体流程梳理

             初始架构就是服务端连接git,要从git上读配置,客户端服务连接服务端服务,要从服务端上读配置,然后服务端和客户端都要添加消息总线的支持,这是上图的(1)(2)。此时运维人员在git上修改了配置(3),并发送POST请求总线刷新给服务端(4):

            此时服务端就发送消息给消息总线(5),所有客户端就监听到了事件消息(6),然后去服务端读取最新的配置即可(7)。

            如果我们不想通知全部的客户端,只想定点通知某一个客户端,我们只需要修改Post请求即可,例如:

     

  • 相关阅读:
    360评估应用的6大场景
    内网渗透知识 ——(一)、工作组、域、域控、活动目录
    2023NOIP A层联测10 集合
    JavaScript 对象
    javaSE——多线程
    DJYGUI系列文章五:GK显示器接口
    Mac电脑空间不足怎么办?如何优化系统
    FRP之入门篇
    让dropout在图像超分辨领域大放异彩![2022 CVPR]
    Vue学习—Vue的安装与使用
  • 原文地址:https://blog.csdn.net/m0_62565675/article/details/134278995