SpringCloud消息总线——Bus

这篇具有很好参考价值的文章主要介绍了SpringCloud消息总线——Bus。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Bus

本专栏学习内容来自尚硅谷周阳老师的视频

有兴趣的小伙伴可以点击视频地址观看

在SpringCloud Config学习过程中,还遗留下来一个问题:当运维更新git上的配置信息时,要想更改所有的客户端服务,必须得手动给客户端服务发送post请求进行刷新。Bus可以很好的解决这个问题,实现一次发送,全部订阅者收到,有点类似于MQ中的Topic消息。

作用

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

Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。Spring Clud Bus目前支持RabbitMQ和Kafka。

什么是总线

在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于**该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。**在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。

原理

ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其它监听同一Topic的服务就能得到通知,然后去更新自身的配置。

动态刷新全局广播

前期准备

在上一章节中,我们创建了服务端3344以及客户端3355,为了演示全局广播,复制一个一摸一样的3355,端口为3366

设计思想

每次手动刷新去刷新服务端3344,再由3344转发到3355,3366。

实现

3344、3355、3366分别添加Bus依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

修改3344配置文件

#rabbitmq配置
spring:
  rabbitmq:
    host: 124.220.80.180
    port: 5672
    username: xxx
    password: xxx

##rabbitmq相关配置,暴露bus刷新配置的端点
management:
  endpoints: #暴露bus刷新配置的端点
    web:
      exposure:
        include: 'bus-refresh' # 之后可以通过 localhost:3344/actuator/bus-refresh 来手动刷新

修改3355、3366配置文件

只需添加rabbitmq连接配置即可

rabbitmq:
  host: 124.220.80.180
  port: 5672
  username: xxx
  password: xxx

测试

此时手动修改git上的配置文件,并且给3344发送post请求,即可全局广播刷新3355、3366

curl -X POST http://localhost:3344/actuator/bus-refresh

SpringCloud消息总线——Bus

SpringCloud消息总线——Bus

SpringCloud消息总线——Bus

动态刷新局部广播

有时候需求又不会是更新所有服务的配置文件,这时候可以请求局部广播,post请求如下

http://localhost:3344/actuator/bus-refresh/{destination}

这里的{destination}指的是注册到服务中心的服务名以及端口号,例如

curl -X POST http://localhost:3344/actuator/bus-refresh/config-client:3355

此时只刷新了3355,并没有刷新3366

SpringCloud消息总线——Bus

SpringCloud消息总线——Bus

如果想发送多个指定的服务,可以使用以下语句

curl -X POST http://localhost:3344/actuator/bus-refresh?destination=config-client:3355&config-client:3366

虽然会报语法不正确,但是是可以刷新的!

SpringCloud消息总线——Bus文章来源地址https://www.toymoban.com/news/detail-421861.html

到了这里,关于SpringCloud消息总线——Bus的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 板块一 Servlet编程:第六节 HttpSession对象全解 来自【汤米尼克的JAVAEE全套教程专栏】

    在上一节中,我们学习了Servlet五大对象里的第三个Cookie对象,但Cookie是有大小限制和数量限制的,并且越来越多的Cookie代表客户端和服务器的传输量增加,可不可以每次传的时候不传所有Cookie值,而只传一个唯一ID,通过这个ID直接在服务器查找用户信息呢?答案是有的,这

    2024年02月21日
    浏览(37)
  • 板块一 Servlet编程:第四节 HttpServletResponse对象全解与重定向 来自【汤米尼克的JAVAEE全套教程专栏】

    在上一节中,我们系统的学习了请求响应在Servlet中 service() 方法的第一个形参HttpServletRequest(请求)对象,这一节中我们将学习它的兄弟, service() 方法的第二个形参HttpServletResponse(响应)对象 在我们已然熟悉的浏览器访问Servlet的过程中。Request和Response 对象分别代表请求和

    2024年02月21日
    浏览(32)
  • CSDN独家《芒果YOLO改进高阶指南》适用YOLOv5、YOLOv7、YOLOv8等改进专栏,来自人工智能专家老师联袂推荐

    《芒果改进YOLO系列高阶指南》目录 💡该教程为芒果改进YOLO进阶指南专栏,属于 《芒果书》 📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡🎈☁️:[CSDN原创《芒果改进YOLO高阶指南》推荐!] CSDN博客独家更新 出品: 专栏详情🔎:芒果改

    2023年04月17日
    浏览(46)
  • CSDN芒果独家YOLOv5改进、YOLOv7改进(适用YOLOv8改进)专栏 | 《芒果YOLO改进系列进阶指南》来自人工智能专家老师联袂推荐

    《芒果改进YOLO系列进阶指南》目录 💡该教程为芒果改进YOLO进阶指南专栏,属于 《芒果书》 📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 CSDN博客独家更新 出品: 专栏详情🔎:芒果改进YOLO进阶指南 重点 :有不少 同学 反应和我说已经在

    2023年04月09日
    浏览(51)
  • 【Linux】fdisk命令参数详解(图文超详细,内容来自官方文档)

    目录 0.环境 1.背景 2.内容--官方文档对fdisk的介绍 1)名称 2)说明  3)具体参数/选项 4)举个栗子,我要查fdisk的版本 windows + linux虚拟机 之前发表了一篇文章Linux 用fdisk进行磁盘分区(图文过程),里面用到了fdisk命令来给磁盘分区,用到了很多fdisk的内置命令。 今天(2023

    2024年02月11日
    浏览(35)
  • CSDN独家《芒果YOLO改进高阶指南》适用YOLOv5、YOLOv7、YOLOv8等改进专栏,来自人工智能专家唐宇迪老师联袂推荐

    《芒果改进YOLO系列高阶指南》目录 💡该教程为芒果改进YOLO进阶指南专栏,属于 《芒果书》 📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡🎈☁️:[CSDN原创《芒果改进YOLO高阶指南》推荐!] CSDN博客独家更新 出品: 专栏详情🔎:芒果改

    2023年04月08日
    浏览(34)
  • 【三十天精通 Vue 3】 专栏内容介绍

    全网最火Vue3专栏 欢迎来到全网最火的 Vue 3 专栏,一场深度探索 Vue 3 前端框架的盛宴正式开启!无论你是 Vue 新手还是经验丰富的开发者,这里都将成为你深入学习和掌握 Vue 3 的不二之选。我们带你踏上一段令人激动的学习之旅,从入门到高级,逐步揭开 Vue 3 的神秘面纱。

    2024年02月09日
    浏览(42)
  • SpringBoot自定义消息总线

            在现代的分布式系统中,消息传递已成为一个非常流行的模式。它使得系统内的不同部分可以松耦合地通信,从而实现更高效、更可靠的应用程序。本博客将介绍SpringBoot如何提供简单易用的消息传递机制,并展示如何自定义消息总线以满足特定需求。         定

    2024年02月10日
    浏览(25)
  • Vector-CAPL 自动化探索 专栏内容介绍

    🚀 欢迎来到 “Vector-CAPL 自动化探索” 专栏,我是陈书予,将带您踏上一段充满创新的旅程,深入探讨如何利用Vector-CAPL(vTESTStudio)实现自动化测试的无限可能。 vTESTstudio测试用例概述: 状态图编辑器: 测试表编辑器: CAPL编辑器: 追溯矩阵效果图: 🔍 专栏亮点: 在这

    2024年02月13日
    浏览(34)
  • 消息总线在微服务中的应用

    上一篇文章介绍了 Spring Cloud 中的分布式配置组件 Config ,每个服务节点可以从 Config Server 拉取外部配置信息。但是似乎还有一个悬而未决的问题,那就是当服务节点数量非常庞大的时候,我们不可能一台一台服务器挨个去手工触发刷新,这时候就需要一个可以号令武林的角色

    2024年02月21日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包