首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >RabbitMQ是否能够将消息从队列“推送”到消费者?

RabbitMQ是否能够将消息从队列“推送”到消费者?
EN

Stack Overflow用户
提问于 2014-10-23 05:31:03
回答 4查看 12.3K关注 0票数 17

使用RabbitMQ,有没有一种方法可以将消息从队列“推送”到消费者,而不是让消费者“轮询并从队列中提取”消息?

这已经引起了一些关于我正在做的项目的争论。一方的论点是,让消费者(即,windows服务)在新消息到达之前“轮询”队列在某种程度上是低效的,并且比使消息从队列自动“推入”到订户/consumer(多个)的想法更不可取。

我似乎只能找到支持消费者“轮询并从队列中拉出”消息的想法的信息(例如,使用windows服务来轮询队列中的新消息)。关于“推送”消息给消费者/订阅者的想法没有太多的信息……

EN

回答 4

Stack Overflow用户

发布于 2015-07-23 15:34:37

让服务器将消息推送到客户端是将消息发送到客户端的两种方式之一,也是大多数应用程序的首选方式。这称为通过订阅消费消息。

客户端已连接。(AMQP/RabbitMQ/大多数消息传递系统模型是客户端始终处于连接状态-当然,网络中断除外。)

您可以使用客户端API通过提供回调方法来安排通道使用消息。然后,只要有消息可用,服务器就通过通道将其发送给客户端,客户端应用程序通过异步回调(通常是每个通道一个线程)获取该消息。您可以在通道上设置“预取计数”,以控制客户端可以在该通道上执行的流水线操作的数量。(为了进一步提高并行性,应用程序可以在一个连接上运行多个通道,这是一种用于各种目的的常见设计。)

另一种方法是客户端通过get方法通过通道一次轮询一条消息。

票数 11
EN

Stack Overflow用户

发布于 2018-01-24 09:31:39

您将消息从Producer“推”到Exchange。

https://www.rabbitmq.com/tutorials/tutorial-three-python.html

顺便说一句,这非常适合IoT场景。设备生成消息并将其发送到交换机。Queue正在处理持久化、FIFO和其他功能,以及向订阅者传递消息。

顺便说一句,你永远不会“轮询”队列。相反,您总是订阅publisher。类似于观察者模式。一般来说,我会说天才原则。因此,它类似于邮箱或邮局,除了它会在消息可用时向您发送通知。

票数 2
EN

Stack Overflow用户

发布于 2018-07-22 19:49:00

引用自docs here

AMQP代理要么将消息传递给订阅了队列的消费者,要么消费者按需从队列中获取/拉取消息。

来自here

将消息存储在队列中是无用的,除非应用程序可以使用它们。在AMQP 0-9-1模型中,应用程序有两种方法可以做到这一点:

让消息下发("push API")根据需要拉取消息("pull API")

使用“推送API",应用程序必须表明有兴趣使用特定队列中的消息。当他们这样做时,我们说他们注册了一个消费者,或者简单地说,订阅了一个队列。每个队列可以有多个消费者,也可以注册一个独占消费者(当队列正在消费时,将所有其他消费者排除在队列之外)。

每个消费者(订阅)都有一个称为消费者标签的标识符。它可以用来取消订阅消息。消费者标签只是字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26521854

复制
相关文章
RabbitMQ 延迟队列,消息延迟推送
在上面两种场景中,如果我们使用下面两种传统解决方案无疑大大降低了系统的整体性能和吞吐量:
海向
2019/09/23
2.2K0
RabbitMQ 延迟队列,消息延迟推送
RabbitMQ是如何确定消息是否投递到队列中的
在使用RabbitMQ消息中间件时,因为消息的投递是异步的,默认情况下,RabbitMQ会删除那些无法路由的消息。为了能够检出消息是否顺利投递到队列,我们需要相应的处理机制。今天就来验证一下相关的验证机制。
码农小胖哥
2020/10/10
2.7K0
RabbitMQ是如何确定消息是否投递到队列中的
消息队列-RabbitMQ
交换机有四种类型:direct exchange、topic exchange、fanout exchange、headers exchange。
lpe234
2021/03/04
1.7K0
RabbitMQ消息队列
全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
小小咸鱼YwY
2020/06/19
1.7K0
RabbitMQ消息队列
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
conanma
2022/04/11
5570
消息队列_RabbitMQ
市面上的消息队列有很多,比如 ActiveMQ、RabbitMQ 、 Kafka ,还有阿里的 RocketMQ ,连 redis 这样的 NoSQL 数据库也支持 MQ 功能。 什么叫消息队列 消息(Message)指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中
神秘的寇先森
2018/05/30
7190
RabbitMQ消息队列
1.安装 RabbitMQ部署指南 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一:在线拉取 docker pull rabbitmq:3-management 方式二:从本地加载 在课前资料已经提供了镜像包: image-20210423191210349 上传到虚拟机中后,使用命令加载镜像即可: docker load -i mq.tar 1.2.安装MQ 执行下面的命令来运行MQ容器: docker run \ -e RABBITMQ_DE
用户10521079
2023/05/04
3380
RabbitMQ消息队列
RabbitMQ消息队列
  RabbitMQ是一个在AMQP基础上完整的、可复用的企业消息系统,遵循Mozilla Public License开源协议。MQ全称Message Queue(消息队列),它是一种应用程序对应用程序的通信方式。应用程序通过读写入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接他们。消息传递指的是程序之间通过在消息中发送数据通信,而不是直接调用彼此来通信,直接调用通常用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
py3study
2020/01/17
7170
RabbitMQ 消息队列
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
py3study
2020/01/16
9250
通用的消息队列(redis,kafka,rabbitmq)--消费者篇
上篇我写了一个通用的消息队列(redis,kafka,rabbitmq)--生产者篇,这次写一个消费者篇. 1.消费者的通用调用类:
星痕
2020/06/19
1.2K0
消息队列探秘 – RabbitMQ 消息队列介绍
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。
java思维导图
2019/11/05
3.5K0
消息队列探秘-RabbitMQ消息队列介绍
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。
高广超
2018/12/12
3K0
C#消息队列(RabbitMQ)零基础从入门到实战演练
一、课程介绍 如果您从工作中之听过但未有接触过消息对队列(MQ),如果你接触过一点关于MQ的知识,如果没有这么的多如果的话......,那么阿笨将通过本次《C#消息队列零基础从入门到实战演练》分享课让您对消息队列有一个实质性的了解和认识,达到实际的灵活贯通和运用。本次分享课您将学习到以下知识点: 1、微软MSMQ的基本使用技能以及MSMQ在WCF技术中的运用。 2、企业级RabbitMQ消息队列的两种消费模式(生产消费和发布订阅)的介绍和使用。 3、如何实现RabbitMQ客户端(Client)多线
跟着阿笨一起玩NET
2018/09/20
2K0
C#消息队列(RabbitMQ)零基础从入门到实战演练
Rabbitmq---消息队列
有了消息队列,每一次连接不管是生成消息还是消费消息,都有各自的逻辑与其他逻辑无关--通信解耦
Java高级架构
2018/12/14
7190
rabbitmq消息队列——"路由"
在之前的教程中,我们创建了一个简单的日志系统。我们能够向许多交换器转发日志消息。 在本教程中,我们将添加一个功能——我们让它仅仅接收我们感兴趣的日志类别。举例:我们 实现仅将严重级别的错误日志写入磁盘
用户1141560
2017/12/26
6700
rabbitmq消息队列——"路由"
RabbitMQ——队列消息数
生产者发送的消息数量与消费者接收的消息数量不一致。例如生产者向rabbitmq投递了100条消息,消费者只从队列中接收到了80条消息,并且当前队列中已经没有任何消息。
陈猿解码
2023/02/28
8090
RabbitMQ——队列消息数
rabbitmq消息队列——"工作队列"
二、”工作队列” 在第一节中我们发送接收消息直接从队列中进行。这节中我们会创建一个工作队列来分发处理多个工作者中的耗时性任务。 工作队列主要是为了避免进行一些必须同步等待的资源密集型的任务。实际上我们
用户1141560
2017/12/26
1.5K0
rabbitmq消息队列——"工作队列"
消息队列之RabbitMQ
消息被MQ保存起来了,然后系统就可以按照自己的消费能力来消费,比如每秒1000个数据,这样慢慢写入数据库,这样就不会卡死数据库了。
千羽
2021/01/14
4700
消息队列之RabbitMQ
消息队列(RabbitMQ)(入门)
举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。
cheese
2023/10/25
1.9K0
消息队列(RabbitMQ)(入门)
点击加载更多

相似问题

RabbitMQ:从RabbitMq exchange路由到每个队列时是否重复消息

21

RabbitMQ -根据消息类型将消息发布到队列

10

将JSON文件(消息)推送到RabbitMQ中的队列

164

RabbitMQ :为多个消费者从队列中发送固定消息

20

异步消费者RabbitMQ:如何从队列接收序列中的消息

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文