gpt4 book ai didi

queue - RabbitMQ 是否能够从队列到消费者的 "pushing"消息?

转载 作者:行者123 更新时间:2023-12-04 02:23:04 25 4
gpt4 key购买 nike

使用 RabbitMQ,有没有办法将消息从队列“推送”到消费者,而不是让消费者从队列中“轮询和拉取”消息?

这是对我正在进行的当前项目进行一些辩论的原因。一方面的论点是,让消费者(即 Windows 服务)“轮询”一个队列直到新消息到达与将消息从队列自动“推送”到订阅者的想法相比,效率低下且不太理想/消费者。

我似乎只能找到支持消费者从队列中“轮询和拉取”消息的想法的信息(例如,使用 Windows 服务轮询队列以获取新消息)。关于向消费者/订阅者“推送”消息的想法没有太多信息......

最佳答案

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

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

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

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

关于queue - RabbitMQ 是否能够从队列到消费者的 "pushing"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26521854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com