来自单个RabbitMQ队列的并发basicGet

来自单个RabbitMQ队列的并发basicGet,rabbitmq,amqp,Rabbitmq,Amqp,我们运行多个并发RabbitMQ使用者,每个使用者在一个循环中执行“basicGet”。我们看到单个消费者获得了大部分信息。有没有办法在所有消费者之间更平均地传播信息?基本上,我们可以以某种方式中断RabbitMQ服务第一个消费者,并切换到下一个消费者。注意:我们必须拉取消息(basicGet),不能切换到推送(basicConsume),谢谢。将使用者预取限制设置为1,并将使用者置于noAck:false模式 。。。这可能是autoAck:false,而不是noAck 这将迫使您的消费者一次只

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

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

。。。这可能是autoAck:false,而不是noAck

这将迫使您的消费者一次只能检索一条消息,并要求您手动确认该消息


有了这两件事,您的消息应该更均匀地分布在多个使用者之间-假设队列中有多条消息

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

。。。这可能是autoAck:false,而不是noAck

这将迫使您的消费者一次只能检索一条消息,并要求您手动确认该消息


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

无法切换到推送(basicConsume)
我今天读到的最悲哀的事情之一:)
无法切换到推送(basicConsume)
我今天读到的最悲伤的事情之一是:)谢谢。这正是我想要的方向(RabbitMQ接口配置)。只是我不认为预回迁与basicGet相关——它是一种基本的消费方式。现在我需要尝试一下basicGet的“手动”确认,看看它是否有帮助。再次感谢您。我认为您关于预回迁的看法是正确的,因为basicGet一次只能获取一条消息谢谢这正是我想要的方向(RabbitMQ接口配置)。只是我不认为预回迁与basicGet相关——它是一种基本的消费方式。现在我需要尝试一下basicGet的“手动”确认,看看它是否有帮助。再次感谢您。我认为您关于预回迁的看法是正确的,因为basicGet一次只能获取一条消息