Rabbitmq 使用单个同步调用检索多条消息

标签 rabbitmq synchronous

有没有办法使用单个同步调用接收多条消息?

当我知道队列中有 N 条消息(N 可能是小于 10 的小值)时,我应该能够执行类似 channel.basic_get(String queue, boolean autoAck, int numberofMsg ) 的操作。我不想向服务器发出多个请求。

最佳答案

RabbitMQ的basic.get不幸的是不支持多条消息 as seen in the docs .检索多条消息的首选方法是使用 basic.consume这会将消息推送到客户端,避免多次往返。 acks是异步的,因此您的客户端不会等待服务器响应。 basic.consume还具有允许 RabbitMQ 在客户端断开连接时重新传递消息的好处,这是 basic.get做不到。这也可以关闭设置 no-acktrue .

设置 basic.qos prefetch-count将设置随时推送到客户端的消息数量。如果客户端没有等待消息(会立即返回),客户端库往往会因可选超时而阻塞。

关于Rabbitmq 使用单个同步调用检索多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005515/

相关文章:

node.js - Nodejs RabbitMQ 服务器上的高性能

java - RabbitMQ(或者spring cloud stream)可以独占消费消息吗?

RabbitMQ ** 警告 ** Mnesia 过载

c++ - 如何 boost Boost ASIO、UDP 客户端应用程序的吞吐量

java - Spring RabbitTemplate setRetryTemplate 和 setRecoveryCallback 被忽略

rabbitmq - RabbitMQ 交换的 Kafka 等价物是什么?

javascript - 同步 Ajax - Chrome 是否对可信事件超时?

ios - 在 NSOperation 子类 : sync or async pattern? 中发送多个请求

ios - 即使在完成处理程序中,Swift 代码也会异步执行

objective-c - iOS7 SpriteKit 如何在恢复方法执行之前等待动画完成?