我有2个Rabbitmq节点作为集群连接(没有队列复制),并且有4个工作者,所有人都绑定到同一个队列"myqueue",现在,我手动将消息发布到该队列(发布者可以连接到任何rabbit节点……不影响结果)。
现在,这种情况发生了:每次我向该队列发布消息时,我都会发现以循环方式传递给工作者/消费者的消息,无论消费者或发布者连接到哪个节点,我总是得到相同的结果。
有人告诉我,这是Rabbitmq的"预取计数"的结果,但我不明白这是怎么回事,甚至我不知道这是否是正确的答案。
我认为rabbitmq的行为是正确的。当工作人员监听队列时,rabbitmq以循环方式向消费者传递消息。
参考编号:http://www.rabbitmq.com/tutorials/tutorial-two-python.html
默认情况下,RabbitMQ将按顺序将每条消息发送给下一个使用者。平均而言,每个消费者都会收到相同数量的消息。这种分发消息的方式被称为循环。让三个或三个以上的工人试试这个。