RabbitMQ是怎么做消息分发的?

标题RabbitMQ是怎么做消息分发的?

RabbitMQ一共有6中工作模式(消息分发模式),分别是简单模式、工作队列模式、发布订阅模式、路由模式、主题模式、以及RPC模式。

简单模式是最基本的工作模式,也是最简单的消息传递模式。在简单模式中,一个生产者将消息发送到一个队列中,一个消费者从队列中获取并处理消息。这种模式使用于单个生产者和单个消费者的简单场景,消息的处理是同步的。在这里插入图片描述

工作队列模式用于实现一个任务在多个消费者之前的并发处理。在工作队列模式中,一个生产者将消息发送到一个队列中,多个消费者从队列中共获取并处理消息。每个消息只能被一个消费者处理。这种模式适用于多个消费者并发处理消息的情况,提高了系统的处理能力和吞吐量。

在这里插入图片描述
发布/订阅模式用于实现一条消息被多个消费者同时接收和处理。在发布/订阅模式中,一个生产者将消息发送到交换器(Exchange)中,交换器将消息广播到所有绑定的队列,每个队列对应一个消费者。这种模式适用于消息需要被多个消费者同时接收和处理的广播场景,如日志订阅和事件通知等。
在这里插入图片描述
路由模式用于实现根据消息的路由键(Routing Key)将消息路由到不同的队列中。在路由模式中,一个生产者将消息发送到交换器中,并指定消息的路由键,交换器根据路由键将消息路由到与之匹配的队列中。这种模式适用于根据不同的条件将消息发送到不同的队列中,以实现消息的筛选和分发。
在这里插入图片描述主题模式是一种更灵活的消息路由模式,它使用通配符匹配路由键,将消息路由到多个队列中。在主题模式中,一个生产者将消息发送到交换器中,并指定主题(Topic)作为路由键,交换器根据通配符匹配将消息路由到与之匹配的队列中。这种模式适用于消息的复杂路由需求,可以实现高度灵活的消息筛选和分发。
在这里插入图片描述RPC模式是一种用于实现分布式系统中远程调用的工作模式。指的是通过RabbitMQ来实现一种RPC的能力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Java、Android面试]_11_线程的启动方式和区别

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 使用Executor框架4. 四者的区别 本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于…

DXP学习2- 绘制电气图【实验】

目录 一、实验目的 二、实验原理 1、创建一个新的项目文件。 2、新建原理图文件 3、设置原理图选项 4、放置元器件 5、其他电路元素的放置 6、对所有电路元素属性参数值的修改 三、实验设备 四、实验内容 1、绘制实验图2-1 元器件所在位置: 1,…

炒伦敦金大师级的交易技术

交易中的反身性由投资大师索罗斯提出,简单来说,它所描述的是投资者与市场之间那种奇妙的互动和互相影响的关系。大家可以把伦敦金市场趋势,想象成一个很大的舞台,它会影响和决定投资者的心理预期和决策。 而投资者的心理预期和决策…

【C++】Qt:WebSocket客户端示例

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍WebSocket客户端示例。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&…

k8s-kubectl命令详解、Pod创建过程、Pod的生命周期、定制Pod、资源对象文件

集群管理 一、如何管理集群 kubectl是用于管理Kubernetes集群的命令行工具 二、语法格式: kubectl [command] [TYPE] [NAME] [flags] command:子命令,如create,get,describe,delete type:…

redis集群数据一致性如何保证?

一般的做法是对key进行hash,比如有4台机器,就对4取模。 这样的坏处是增加或者减少机器的时候,会有大量数据进行迁移。 业界做法是用一致性哈希算法,将机器节点的ip值,对一个很大的数取模比如2^32, 用一个…

Prometheus 配置Basic auth认证

官方配置说明: Basic auth | Prometheus 一、生成密码加密串 Prometheus于2.24版本(包括2.24)之后提供Basic Auth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheus api的时候也需要加上用户密…

优质的短效HTTP代理具备什么优点?

随着网络时代的蓬勃发展,数据的获取与处理成为了企业决策和市场竞争的关键。在这场数据的角逐中,优质的短效HTTP代理脱颖而出,备受业界瞩目。优质的短效HTTP代理,提供了稳定的网络连接和匿名性,更为数据采集提供了关键…

Echarts组件初步封装

一、业务场景: 最近在vue中使用echarts时 有多处需要用到各种图表,想着自己封装一个便于多次复用 为了避免大家走弯路,为大家整理了一下,粘走可以直接用的那种 二、具体实现步骤: 1、先在终端安装echarts npm install…

管理类联考–复试–英文面试–问题--规划介绍原因做法--纯英文版

借鉴 https://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.clickhttps://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.click https://ttsreader.com/zh/https://ttsreader.com/zh/ 规划 视频版…

一文掌握Java动态代理的奥秘与应用场景

一、基本概念 为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象来替代。代理类负责请求的预处理、过滤、将请求分派委托类处理、以及委托类执行完请求后的后续处理。…

中国软件评测中心发布《健康软件安全白皮书》,美创参编分享方案实践

日前,中国软件评测中心网络安全和数据安全研究测评事业部发布《健康软件安全白皮书》研究成果,美创科技深度参与此次白皮书编写工作,针对健康软件目前面临的安全风险,分享数据安全建设思路。 白皮书详细剖析健康软件面临的网络和数…

盲盒抽卡机小程序:探索神秘盲盒,尽享抽卡乐趣

在盲盒文化的热潮中,盲盒抽卡机作为一种深受大众喜爱的娱乐形式,正逐渐成为市场上的新宠。为了满足广大盲盒爱好者和抽卡玩家的需求,我们积极投身于盲盒抽卡机小程序的开发,旨在通过创新的技术手段,为用户带来全新的盲…

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错

1.查看显卡: 第一步:同时按下键盘的winr键,输入cmd 第二步:随后输入 nvidia-smi 2.查看下载安装的包: conda list conda list 3.问题报错 PyTorch出现:RuntimeError: An attempt has been made to …

解决vue3中刷新浏览器页面的axios请求状态变为canceled

最近在开发中要加一个悲观锁的功能,具体需求是:用户1和用户2不能同时打开一个模型进行编辑,用户1优先进入模型后,要对该模型进行上锁,关闭该模型或刷新页面时要进行解锁,此时在刷新页面时出现了问题。 刷新…

线上linux服务器升级nginx

一个nginx版本空包 一个pcre文件 一个zlib文件 ./configure配置文件 make编译 make install复制所有文件到nginx 如果nginx -v无版本号 检查环境变量cat /etc/profile 编辑 环境变量vi /etc/profile 按i进入编辑模式 按esc进入查看模式 因为path中并未使用%JAVA_HOME%字样…

力扣---全排列---回溯

思路: 递归做法,一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位,再考虑第1位,再考虑第2位...dfs函数中还是老套路,先判定特殊条件,再从当下的角度(决定第 j 位是哪个元素&#x…

Docker 应用部署

MySQL部署 需求 在 Docker 容器中部署 MySQL ,并通过外部 mysql 客户端操作 MySQL Server 。 步骤 1. 搜索mysql镜像 docker search mysql 2. 拉取mysql镜像 docker pull mysql:5.6 3. 创建容器,设置端口映射、目录映射 事先在/root目录下创建m…

VScode手动安装vsix格式插件,提示安装插件与code版本不兼容问题

问题描述: vscode手动按装插件提示"插件不兼容code版本 原因方案:修改安装包内的package.json文件中的版本号与vscode版本号对应即可 解决步骤 以(adpyke.codesnap-1.3.4.vsix)安装包为例 手动安装vscode弹出 无法安装扩展“adpyke.codesnap-1.3.4”,它与 …

每周一算法:迭代加深A*

题目链接 AcWing 180. 排书 题目描述 给定 n n n 本书,编号为 1 ∼ n 1\sim n 1∼n。 在初始状态下,书是任意排列的。 在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。 我们的目标状态是把书按照 1 ∼…