【问题标题】:Why Rabbitmq cluster delivers messages to consumers in a Round-Robin fashion为什么 Rabbitmq 集群以 Round-Robin 方式向消费者传递消息
【发布时间】:2013-12-22 22:44:11
【问题描述】:

我有 2 个 Rabbitmq 节点作为集群连接(没有队列复制),并且有 4 个工作人员,都绑定到同一个队列“myqueue”,现在,我手动将消息发布到该队列(发布者可以连接到任何兔子节点..都不影响结果)。

现在,发生了这种情况:每次我向该队列发布消息时,我发现消息以循环方式传递给工作人员/消费者,无论消费者或发布者连接到哪个节点,我总是得到相同的结果。

有人告诉我这是Rabbitmq的“prefetch_count”的效果,但我不明白这是怎么回事,甚至不知道这是否是正确的答案。

【问题讨论】:

    标签: rabbitmq amqp high-availability round-robin node-amqp


    【解决方案1】:

    我认为 rabbitmq 的行为是正确的。当工作人员正在收听队列时,rabbitmq 以循环方式将消息传递给消费者。

    参考:http://www.rabbitmq.com/tutorials/tutorial-two-python.html

    默认情况下,RabbitMQ 会按顺序将每条消息发送给下一个消费者。平均而言,每个消费者都会收到相同数量的消息。这种分发消息的方式称为循环。与三个或更多工人一起尝试。

    【讨论】:

    • 这和prefetch_count有关系吗?
    • 我不这么认为,预取计数决定了消费者在绑定到该队列时应该消耗和完成多少消息。
    • 如果同一个用户从多个设备登录,那么消息只会得到一个设备。请问如何解决它或任何想法?
    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多