来自单个RabbitMQ队列

时间:2016-05-30 16:38:08

标签: rabbitmq amqp

我们运行多个并发RabbitMQ使用者,每个使用者在一个循环中执行“basicGet”。我们看到单个消费者获得了大部分消息。有没有办法在所有消费者之间更均匀地传播消息?基本上我们可以以某种方式中断RabbitMQ为第一个消费者提供服务并切换到下一个消费者。注意:我们必须拉消息(basicGet)并且不能切换到push(basicConsume)谢谢。

1 个答案:

答案 0 :(得分:0)

将使用者预取限制设置为1,并将使用者置于noAck:false模式。

...可能是autoAck:false,而不是noAck ......

这将强制您的消费者一次只检索1条消息,并要求您手动确认消息。

有了这两件事,你的消息应该更均匀地分布在多个消费者身上 - 假设队列中有多条消息