【问题标题】:RabbitMQ - multiple consumers single publisherRabbitMQ - 多个消费者单个发布者
【发布时间】:2018-07-22 15:09:53
【问题描述】:

当使用 RabbitMQ 处理大量消息时,我需要为同一个发布者和任务添加多个消费者。大多数来自 RabbitMQ 和整个网络的教程都建议为该任务注册多个消费者(尽管大多数教程在新 shell 中为每个消费者打开一个新进程,而我的都将在同一个应用程序下进行)。鉴于每个消费者都需要自己的频道(如果我在这里错了,请纠正我),这意味着对于 X 个消费者,我们将打开 X 个频道。
想到的另一种选择是让一个消费者将消息发送到线程池,其中包含执行消息繁重工作的任务,这有​​点笨拙,但只需要一个开放通道。
有没有更好的方法来实现这两个选项?还有第三种选择吗?

【问题讨论】:

    标签: java rabbitmq message-queue


    【解决方案1】:

    是的,每个消费者都需要自己的渠道。您最好的选择是使用自己的连接和通道在自己的线程中运行每个消费者。 RabbitMQ 将循环传递消息给消费者。请务必阅读有关预取 (QoS) 的信息。


    注意:RabbitMQ 团队监控the rabbitmq-users mailing list,并且有时只回答 * 上的问题。

    【讨论】: