消息中间件管理系统-RabbitMQ及其两类传输模型

这篇具有很好参考价值的文章主要介绍了消息中间件管理系统-RabbitMQ及其两类传输模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微服务通讯有两种方式,同步和异步。客户端将请求发送到服务器,异步通讯较同步通讯而言,通过调用事件驱动模型Broker,无需等待服务器返回结果,微服务之间耦合度更低,微服务无需等待订阅者处理完成性能更好,并且做到了故障隔离,不存在级联失败等问题。

MQ,意思为消息队列,分布式系统中的重要组件,用它就可以实现应用解耦、异步消息、流量削峰等问题。消息队列产品有很多,企业级应用较广泛的就是RabbitMQ。

消息队列中的消息分为两类传输模型点对点模型(一个生产者发送的同一条消息只能被一个消费者消费)、发布订阅模型(一个生产者发送的同一条消息可以被多个消费者同时消费)。

点对点模型包含Simple Queue简单消息模型(一个生产者一个消费者)、Worker消息模型(一个生产者、多个消费者,消费者之间可以平均消费也可以竞争消费)。

发布订阅模型又包含Fanout Exchange 广播模式、、Direct Exchange、Topic Exchange

消息发送接收的流程

简单消息模式:首先消息生产者和消息消费者与RabbitMQ通过mq地址、账户密码建立连接,然后建立通道建立队列来存放消息、消息生产者生产投递消息发送给消息队列,消息发送完成后释放资源(SpringAMQP框架中包含了不用写代码,释放资源代码在底层是写在生产者里面的),消费者监听队列订阅消费消息。

Worker消息模型:就是上述中多个消费者绑定到一个队列中,同一条消息只会被一个消费者处理,并且可通过设置修改consumer服务的application.yml文件,将消费者平均消费模式改为竞争模式

spring:
  rabbitmq:
    listener:
      simple:
        prefetch: 1 # 消费者一次处理一条消息,处理完毕后再从MQ中获取,即消费者消费改为竞争模式

Fanout Exchange 广播模式:较以上多了Exchanges交换机,交换机绑定不同的队列,不同的消费者监听不同的队列。生产者生产消息,将消息投递到交换机,至于交换机将消息发送给哪个队列,生产者不知道。交换机负责接收生产者的消息,并将消息转发到对应的队列上,交换机本身不能存储消息。队列绑定到指定的交换机上,从交换机中接收消息,队列是用来存储消息的。消费者绑定队列,从队列中获取消息。

Direct Exchange 直接广播模式:Fanout Exchange的交换机将消息发送给哪个队列,生产者不知道,但是在正常的微服务项目中,需要生产者消息被指定的消费者也可理解不同的队列消费,因此产生了Direct Exchange,Direct Exchange交换机可以通过发送消息指定RoutingKey消息队列绑定时指定BindingKey,来实现不同消息类型的消息通过队列将消息发送给指定的消息队列也就发送给了自定的消费者。

Topic Exchange 专题广播模式:就是相比Direct Exchange,可以使用通配符#、*等。文章来源地址https://www.toymoban.com/news/detail-828459.html

到了这里,关于消息中间件管理系统-RabbitMQ及其两类传输模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 消息中间件之RabbitMQ

    1.基于AMQP协议Erlang语言开发的一款消息中间件,客户端语言支持比较多, 比如Python,Java,Ruby,PHP,JS,Swift.运维简单,灵活路由,但是性能不高, 可以满足一般场景下的业务需要,三高场景下吞吐量不高,消息持久化没有采取 零拷贝技术,消息堆积时,性能会下降 2.消息吞吐量在

    2024年01月19日
    浏览(86)
  • 中间件RabbitMQ消息队列介绍

    1.1 什么是 MQ MQ ( message queue ),从字面意思上看,本质是个队列, FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中, MQ 是一种非常常 见的上下游 逻辑解耦+物理解耦 的消息通信服务。使用了 MQ 之

    2024年02月13日
    浏览(72)
  • RabbitMQ:可靠消息传递的强大消息中间件

     消息中间件在现代分布式系统中起着关键作用,它们提供了一种可靠且高效的方法来进行异步通信和解耦。在这篇博客中,我们将重点介绍 RabbitMQ,一个广泛使用的开源消息中间件。我们将深入探讨 RabbitMQ 的特性、工作原理以及如何在应用程序中使用它来实现可靠的消息传

    2024年02月12日
    浏览(75)
  • Springboot整合RabbitMQ消息中间件

    spring-boot-rabbitmq–消息中间件整合 前言:RabbitMQ的各种交换机说明 1、直连交换机 生产者发布消息时必须带着routing-key,队列绑定到交换机时必须指定binding-key ,且routing-key和binding-key必须完全相同,如此才能将消息路由到队列中 直连交换机通常用来循环分发任务给多个workers,

    2024年02月11日
    浏览(47)
  • 消息队列中间件(二)- RabbitMQ(一)

    接收,存储,转发消息 生产者 交换机 队列 消费者 简单模式 工作模式 发布 路由模式 主题模式 发布订阅模式 Broker 接收和分发消息的应用 Virtual host 虚拟分组 Connection: TCP连接 Channel: 节省连接,每次访问建立一次Connection消耗太大,所以使用信道代替连接 交换机 队列 www.r

    2024年02月11日
    浏览(68)
  • 高性能消息中间件 RabbitMQ

    消息队列 MQ全称Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的 异步通信 。 同步通信相当于两个人当面对话,你一言我一语。必须及时回复: 异步通信相当于通过第三方转述对话,可能有消息的延迟,但不需要二人时刻保持联系。 消息

    2024年02月11日
    浏览(108)
  • RabbitMQ 消息中间件与集群的部署

    1、消息中间件 1、简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。 当下主流的消息中间件有RabbitMQ、Kafka、

    2024年02月21日
    浏览(48)
  • 「中间件」rabbitmq 消息队列基础知识

    RabbitMQ是一个消息队列软件,用于在应用程序之间转发消息。以下是RabbitMQ的基本概念: 消息:RabbitMQ中的消息是传递的基本单位,它由消息头和消息体组成。 队列(Queue):队列是消息的缓冲区,用于存储待处理的消息。 交换器(Exchange):交换器是接收生产者发送的消息并

    2024年02月07日
    浏览(61)
  • RabbitMQ系列教程消息中间件技术精讲

    作者:禅与计算机程序设计艺术 消息中间件(Message Queue,MQ)是一种分布式应用间通信的组件。它可以在不同的系统之间传递消息、数据或指令。在现代IT架构中,越来越多的应用需要相互通信,所以出现了消息队列的概念。RabbitMQ是一个开源的AMQP实现,是一个可靠、可扩展

    2024年02月06日
    浏览(45)
  • 【消息中间件】1小时快速上手RabbitMQ

    前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:深入、全面、系统的介绍消息中间件 🌰 文章简介:本文将介绍RabbitMQ,一小时快速上手RabbitMQ 下面是MQ的优缺点 1.2.1 优点1:应用解耦 考虑由订单系统与库存系统、支付系统、物流

    2024年02月02日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包