rabbitmq 传递文件_使用RabbitMQ进行消息传递

rabbitmq 传递文件

RabbitMQ是一个强大的消息代理,可用于实现不同的消息传递模式。 即使有出色的教程 (使用不同的语言和框架),也很难理解这些概念。 在这篇文章中,我想展示一些可以用RabbitMQ实现的不同范例,以及为什么要为某些概念而苦恼。

使用队列发送和接收

最简单的方法是使用队列发送消息,并让使用者从同一队列中读取数据。

没有什么可以阻止您拥有多个使用者,每个使用者都可以处理队列中的消息。 使用完一条消息后,该消息将从队列中消失。

当具有需要执行的任务并且无论哪个消费者处理任务都无关紧要时,这特别适合。

发布/订阅

并非所有用例都只消耗一条消息的方式。 通常,您希望拥有多个应该全部处理所有消息的使用者。 一个示例可以是将对象存储在不同的数据存储中(例如,搜索索引和数据库),另一种是域事件,例如已提交并应由订单管理系统和库存系统处理的订单。 这需要一种发布/订阅机制,RabbitMQ当然已经涵盖了这一点。

与仅使用队列相比,最大的区别是在这种情况下,生产者不再直接写队列。 一个称为Exchange的实例将接受邮件并将其转发到一个或多个队列。

要使用经典的发布/订阅模型,您可以使用FanoutExchange将消息转发到一个或多个队列。 要连接交换和队列,您需要声明一个绑定,在这种情况下,特定交换的所有消息都应转发到特定队列。

每个使用者都从专用队列中读取消息。 这也意味着您将需要为每个正在监听的使用者绑定一个绑定。

使用RabbitMQ,可以使用在使用者停止监听时自动删除的队列。 这允许消费者加入和离开时具有非常动态的行为。

看我们的第一个示例,您可能想知道为什么有不同的方式来发送消息,发送队列和进行交换。 事实证明,发送到队列确实是不可能的。 总是存在一个默认交换,它仅转发消息。 此默认交换仅获取消息的某个路由键(即队列名称),然后将它们以相同的名称放入队列中。

发布/订阅过滤

除了将消息发送到已注册进行交换的所有队列之外,还可以根据路由密钥对消息进行过滤。 所有消息都被发送到一个交换机,该交换机通过查看路由键来决定将消息发送到哪个队列。

如果您想与路由键完全匹配,请执行DirectExchange。

将DirectExchange绑定到队列时,您需要提供一个路由密钥,该路由密钥将确定将为此队列考虑的路由密钥。 如果要分配多个路由键,则可以为同一队列添加多个绑定。

您还可以提供通配符来确定应将哪些路由密钥用于队列,这可以通过使用需要分层路由密钥的TopicExchange来完成。

一开始,这两个交流-直接交流和主题交流-可能最让我感到困惑。 当涉及到主题时,我正在考虑经典的发布订阅系统,例如使用FanoutExchange时。 交换名称是客户端正在注册的主题。 但是这里的主题是指在现有交换机上的一种路由。 与DirectExchange相同:我希望直接交换类似于第一个直接将消息发送到队列的示例。 但是在这种情况下,直接交换是指直接路由,因此您始终需要为此提供路由密钥。

如果您想进一步了解各种交流,请转到RabbitMQ网站上的教程 。

翻译自: https://www.javacodegeeks.com/2018/03/messaging-with-rabbitmq-2.html

rabbitmq 传递文件

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

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

相关文章

正则表达式的贪婪模式、非贪婪模式、占有模式

文章目录一、Greediness(贪婪型)(一)贪婪模式示例(二)贪婪模式的匹配过程(贪婪模式的回溯)二、Reluctant(勉强型)(一)非贪婪模式示例&…

深度学习pytorch--线性回归(二)

线性回归无框架实现线性回归的从零开始实现生成数据集(简单的人工构造)读取数据初始化模型参数定义模型定义损失函数定义优化算法训练模型小结完整代码(可直接运行)线性回归的从零开始实现 为了深入理解深度学习是如何工作的,本节不使用强大的深度学习框架&#xf…

乱码 设置界面_和平精英:压轴更新后BUG频出,设置界面崩盘,界面全白变乱码...

引言:陌瑾出品,争做精品!大家好,我是你们的老朋友,陌瑾。和平精英作为当下比较热门的一款PVP即时战斗手游,在6月17日,海岛2.0版本也重装上阵,此次地图更新是和平精英游戏上线以来第1…

spring mvc教程_Spring MVC教程

spring mvc教程1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序。 对于Web应用程序,后果还包括许多挑战。 具体来说,其中一些是状态管理,工作流和验证。 HTTP协议的无状态性质只会使事情变得更加复杂。 Spr…

正则表达式实例解读

文章目录正则式 a?正则式 ^\w\d正则式 (\d){4}|\1{2}正则式 \d{4}|\d{2}正则式 a? 正则式&#xff1a;a? 被匹配的字符串&#xff1a;a<>aava</>ab 看下面的 Java 代码&#xff1a; String test "a<>aava</>abb"; String reg "a…

深度学习pytorch--线性回归(三)

线性回归pytorch框架实现线性回归的简洁实现生成数据集读取数据定义模型初始化模型参数定义损失函数定义优化算法训练模型小结完整代码:线性回归的简洁实现 随着深度学习框架的发展&#xff0c;开发深度学习应用变得越来越便利。实践中&#xff0c;我们通常可以用比上一节更简…

smpp客户端_SMPP Java示例(客户端)

smpp客户端这篇文章通过创建一个简单的SMPP客户端向移动用户发送短信来提供SMPP Java示例&#xff0c;使用该客户端我们可以简单地提交以将消息发送给单个移动用户&#xff0c;也可以一次将消息广播给多个移动用户。另外&#xff0c;我们将验证交货收据。 出于客户端的目的&…

正则表达式的环视深度剖析

文章目录一、环视基础二、顺序环视匹配过程&#xff08;一&#xff09;顺序肯定环视匹配过程&#xff08;二&#xff09;顺序否定环视匹配过程三、逆序环视匹配过程&#xff08;一&#xff09;逆序环视基础&#xff08;二&#xff09;逆序肯定环视匹配过程1. 逆序表达式的长度固…

深度学习pytorch--softmax回归(一)

softmax回归 前几节介绍的线性回归模型适用于输出为连续值的情景。在另一类情景中&#xff0c;模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题&#xff0c;我们可以使用诸如softmax回归在内的分类模型。和线性回归不同&#xff0c;softmax回归的输出单元…

python比较excel表格内容并提取_利用python提取多张excel表数据并汇总到同一张新表中...

接上篇文章《如何用python实现excel中的vlookup功能&#xff1f;》&#xff0c;上篇说到&#xff0c;最近我在做一个小项目&#xff0c;也是用python操作excel解决财务审计工作上的一些问题&#xff0c;以便提高工作效率及其准确性。最终目的&#xff0c;刀哥是想做应收账款账龄…

阿帕奇跨域_阿帕奇齿轮泵

阿帕奇跨域Apache Gearpump是一个实时大数据流引擎。 它于2014年中期在GitHub上作为一个开源项目在英特尔构想&#xff0c;并于2016年3月8日进入Apache孵化。Gearpump的名称是对工程术语“齿轮泵”的指称&#xff0c;它是一个超级简单的泵&#xff0c;由以下组成只有两个齿轮&a…

正则表达式之 NFA 引擎匹配原理详解

文章目录一、为什么要了解引擎匹配原理二、正则表达式引擎三、预备知识&#xff08;一&#xff09;字符串组成&#xff08;二&#xff09;占有字符和零宽度&#xff08;三&#xff09;控制权和传动四、正则表达式简单匹本过程&#xff08;一&#xff09;基础匹配过程&#xff0…

阿帕奇跨域_阿帕奇光束

阿帕奇跨域Apache Beam是一个开放源代码统一模型&#xff0c;用于定义批处理和流数据并行处理管道。 使用一种开源的Beam SDK&#xff0c;您可以构建一个定义管道的程序。 然后&#xff0c;该管道由Beam支持的分布式处理后端之一执行&#xff0c;这些后端包括Apache Apex &…

unity 启动相机_Unity3D研究院之打开照相机与本地相册进行裁剪显示(三十三)...

最近做项目需要用到这个功能&#xff0c;就是在Unity中调用Android本地相册或直接打开摄像机拍照并且裁剪一部分用于用户头像&#xff0c;今天研究了一下&#xff0c;那么研究出成果了MOMO一定要分享给大家。Unity与Android的交互还有谁不会&#xff1f;&#xff1f; 如果有不会…

深度学习pytorch--MNIST数据集

图像分类数据集&#xff08;Fashion-MNIST&#xff09; 在介绍softmax回归的实现前我们先引入一个多类图像分类数据集。它将在后面的章节中被多次使用&#xff0c;以方便我们观察比较算法之间在模型精度和计算效率上的区别。图像分类数据集中最常用的是手写数字识别数据集MNIS…

html 元素的属性

全局属性 全局属性是可与所有 HTML 元素一起使用的属性。 事件属性 用来定义某个事件的操作的属性叫事件属性&#xff0c;例如&#xff0c;οnclick“script”&#xff0c;元素上发生鼠标点击时触发 click 事件&#xff0c;click 事件被触发就会执行对应的脚本代码。事件属性…

nosql和rdnms_用于SaaS和NoSQL的Jdbi

nosql和rdnms一个自然的接口&#xff0c;用于与CRM&#xff0c;ERP&#xff0c;会计&#xff0c;营销自动化&#xff0c;NoSQL&#xff0c;平面文件等基于Java的数据集成 Jdbi是用于JavaSQL便利库&#xff0c;它为JDBC提供更自然的Java数据库接口&#xff0c;该接口易于绑定到…

matlab 功率谱密度 汉宁窗_如何理解随机振动的功率谱密度?

一、随机信号和正太分布有什么关系&#xff1f; 二、时域、频域之间功率守恒&#xff1f; 三、自相关又是个什么玩意&#xff1f;作为一个工程师&#xff0c;很多人对随机振动看着熟悉&#xff0c;却又实际陌生。熟悉是因为几乎每个产品在出厂时都要求要做随机振动试验&#xf…

深度学习pytorch--softmax回归(二)

softmax回归的从零开始实现实验前思考获取和读取数据获取数据集查看数据集查看下载后的.pt文件查看mnist_train和mnist_test读取数据集查看数据迭代器内容初始化模型参数定义softmax函数定义模型定义损失函数计算分类准确率模型评价--准确率开始训练可视化总结完整代码实验前思…

HTML块级元素/块标签/块元素

文章目录块元素的特点块元素清单block level element. 块级元素想在同一行显示需浮动或者 display:inline。 块元素的特点 每个块级元素都是独自占一行&#xff0c;其后的元素也只能另起一行&#xff0c;并不能两个元素共用一行&#xff1b; 元素的高度、宽度、行高、顶边距、…