RabbitMQ:消息模型

news2024/11/20 12:21:55

RabbitMQ 提供了 6 种消息模型,分别为:单生产单消费模型(Hello World)、消息分发模型(Work queues)、Fanout 消息订阅模式(Publish/Subscribe)、Direct 路由模式(Routing)、Topic 匹配模式(Topic)、RPC 模式(RPC)。

本篇内容包括:RabbitMQ 6 种消息模型、RabbitMQ 6 种消息模型介绍


文章目录

    • 一、RabbitMQ 6 种消息模型
    • 二、RabbitMQ 6 种消息模型介绍
        • 1、单生产单消费模型(Hello World)
        • 2、消息分发模型(Work queues)
        • 3、Fanout 订阅模型-消息订阅模式(Publish/Subscribe)
        • 4、Direct 订阅模型-路由模式(Routing)
        • 5、Topic 订阅模型-匹配模式(Topic)
        • 6、RPC 远程过程调用(RPC)


一、RabbitMQ 6 种消息模型

RabbitMQ 提供了 6 种消息模型,分别为:单生产单消费模型(Hello World)、消息分发模型(Work queues)、Fanout 消息订阅模式(Publish/Subscribe)、Direct 路由模式(Routing)、Topic 匹配模式(Topic)、RPC 远程过程调用(RPC)。

如下图所示,其中 1、2 模型(单生产单消费模型与消息分发模型)都是较为简单的消费模型;3、4、5 模型三种都属于订阅模型,只不过进行路由的方式不同,第 6 种属于是 RPC,并不是 MQ。

img


二、RabbitMQ 6 种消息模型介绍

1、单生产单消费模型(Hello World)

单生产单消费模型,即基本消息模型或简单消费模型,即完成基本的一对一消息转发。

image-20221201012211684

2、消息分发模型(Work queues)

在消息分发模型,多个收听者监听一个队列。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9uCHOPeJ-1670811963658)(https://lizhengi.oss-cn-beijing.aliyuncs.com/BenjaminNode/image-20221201012225446.png)]

3、Fanout 订阅模型-消息订阅模式(Publish/Subscribe)

订阅模型-消息订阅模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息。

image-20221201012238266

4、Direct 订阅模型-路由模式(Routing)

订阅模型-路由模式,此时生产者发送消息时需要指定 RoutingKey,即路由 Key,Exchange 接收到消息时转发到与 RoutingKey 相匹配的队列中。

image-20221201012250811

5、Topic 订阅模型-匹配模式(Topic)

订阅模型-匹配模式,相比于前两种订阅模型,是更细致的分组,允许 在RoutingKey 中使用匹配符

  • *:匹配一个单词
  • #:匹配0个或多个单词

image-20221201012332602

6、RPC 远程过程调用(RPC)

RPC 远程过程调用,是客户端与服务器之间是完全解耦的,即两端既是消息的发送者也是接受者。

image-20221201012403559

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于JSP的手工艺品在线网站

摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括手工艺品在线网站的网络应用,在外国手工艺品已经是很普遍的方式,不过国内的手工艺品可能还处于起步阶段。手工艺品在线网站具有在线下单功能。手…

详解vue中watch的用法

前言 说到 vue 中的 watch 方法,大家可能首先想到,它是用来监听数据的变化,一旦数据发生变化可以执行一些其他的操作。但是 watch 的操作可不止如此,本章就带大家一起深剖细析 vue 中的 watch 方法。 watch? 因为 vue…

DocuWare平台——用于文档管理和工作流程自动化的内容服务平台详细介绍(上)

DocuWare平台——用于文档管理和工作流程自动化的内容服务平台 成功实现办公自动化所需的一切 DocuWare 是一个先进的平台,可让您集中、快速、有效地管理、处理和利用业务信息。 我们的文档管理和工作流程解决方案的各项功能可以集成到任何 IT 系统中,…

源码解析:从 kubelet、容器运行时看 CNI 的使用

这是 Kubernetes 网络学习的第三篇笔记。 深入探索 Kubernetes 网络模型和网络通信认识一下容器网络接口 CNI(本篇)源码分析:从 kubelet、容器运行时看 CNI 的使用从 Flannel 学习 Kubernetes VXLAN 网络Cilium CNI 与 eBPF... 在上一篇中&…

web前端期末大作业 基于HTML+CSS+JavaScript程序员个人博客模板(web学生作业源码)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

翻译: ChatGPT 的激发敬畏、恐惧、特技和试图绕过其护栏的尝试

来自 OpenAI 的新聊天机器人正在激发敬畏、恐惧、特技和试图绕过其护栏的尝试。 以下是 DALL-E 2 在给出提示时生成的内容,“采用 AI 聊天机器人形式的分布式语言超级大脑。” “A distributed linguistic superbrain that takes the form of an A.I. chatbot.” 信…

WPS文件转Excel文件怎么转?建议看看这些方法

小伙伴们平时在接收文件的时候,有没有发现有些文件是以WPS格式进行保存的。这种格式的文件,如果没有使用相关的软件是没办法直接打开的。这种时候,其实我们可以将WPS转成其它office格式就可以打开它,进行编辑了。那你们知道WPS转E…

面试官:你说说Springboot的启动过程吧(5万字分析启动过程)

文章目录前言一、Springboot是什么二、启动流程2.1 构建Spring Boot项目2.2 启动的日志2.3 启动流程分析说明2.3.1 第一部分:SpringApplication的构造函数A、webApplicationType(web应用类型)B、引导注册初始化器C、设置初始化器D、设置监听器…

嵌入式开发-STM32硬件SPI驱动TFT屏

嵌入式开发-STM32硬件SPI驱动TFT屏这次用到的TFT屏CubeMX设置代码编写增加的内容需要注意问题代码下载这次用到的TFT屏 现在的TFT屏幕已经很便宜了,65536色屏幕,2.8英寸,分辨率320X240的液晶屏才20元,我为了图省事,多配…

[附源码]Nodejs计算机毕业设计基于JAVA快递配送平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

SpringBoot整合GitLab-CI实现持续集成

写在前面 🍁个人主页:微枫Micromaple ✨本期专栏:《0到1项目搭建》欢迎订阅学习~ 📌源码获取:GitCode、GitHub、码云Gitee 持续更新中,别忘了 star 喔~ 在企业开发过程中,我们开发的功能或者是修…

python之筛选图像中是否存在黑白背景

python之筛选图像中是否存在黑白背景 紧接上篇文章的需求,需要进行功能增加 某些图片存在背景丢失问题,出现黑白背景现象,这种需要排查,同样交给了自动化处理。 这次不比上次了,我搜罗了一堆资料,全是什么…

【实时数仓】DWD层需求分析及实现思路、idea环境搭建、实现DWD层处理用户行为日志的功能

文章目录一 DWD层需求分析及实现思路1 分层需求分析2 每层的职能3 DWD层职能详细介绍(1)用户行为日志数据(2)业务数据4 DWD层数据准备实现思路二 环境搭建1 创建maven工程2 修改配置文件(1)添加依赖&#x…

Faster RCNN精读

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Faster R-CNN:使用区域建议网络实现实时目标检测 优异的网络模型总是经得起时间的推敲,Faster RCNN便是其中一员。 目录 一、摘要 二、结论 三、介绍和相关工作 …

R语言析因设计分析:线性模型中的对比

对比度可用于对线性模型中的处理进行比较。 常见的用途是使用析因设计时,除析因设计外还使用控制或检查处理。在下面的第一个示例中,有两个级别(1和2)的两个处理(D和C),然后有一个对照 处理。此…

周末来哥家小聚一下

欢迎关注勤于奋 每天12点准时更新国外LEAD相关技术 是的,周末来哥家小聚,他们这儿人不多,就是一些认识的人,没有外人,加上疫情,一般不聚集,大家都清楚没事。 在他家没事,就陪小朋友…

灵活的类加载器OSGI

灵活的类加载器OSGI 简介 OSGi中的每个模块(称为Bundle)与普通的Java类库区别并不太大,两者一般都以JAR格式进行 封装[2],并且内部存储的都是Java的Package和Class。但是一个Bundle可以声明它所依赖的Package(通 过I…

最近的一点杂感

这是学习笔记的第 2444篇文章最近居家办公几周了,除了工作也能想想生活的事情,说说最近自己比较深的几四点感受吧。熵增和待办事项最初居家办公的时候,我们也有日会,也会有一些频繁的沟通,但是总是感觉目标的达成效果上…

JavaScript大作业 基于HTML+CSS+JavaScript站酷静态页面官网7页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

超高质量堆排序详细讲解,图文并茂,看不懂打我

目录 一,题目 二,堆排序 1、堆排序基本介绍 2、堆排序基本思想 3、堆排序步骤图解说明 四,总结堆排序的整体思路 五,整体代码实现 1.普通版 2,STL版 一,题目 给定你一个长度为 n 的整数数列。 请你使用快堆排序对这个数列…