【问题标题】:Multiple subscribers to RabbitMQ QueueRabbitMQ 队列的多个订阅者
【发布时间】:2018-04-06 08:49:50
【问题描述】:

我希望有多个订阅者接收相同的消息,例如 RabbitMQ 的扇出模型。

但是我不知道如果订阅者数量达到10,000或更多,扇出模型是否有效,并且每秒可以推送大约100-200个数据包。

我还有其他方法可以尝试吗?

【问题讨论】:

  • 影响效率的因素很多。唯一知道的方法是设置概念验证并自己尝试。

标签: rabbitmq queue publish-subscribe


【解决方案1】:

Rabbitmq 扇出交换将消息副本路由到每个绑定队列。 正如我们所知,rabbitmq 会跟踪每条消息的状态,并且会降低性能。

也许你应该考虑把这个责任交给消费者,并使用另一个工具,比如 Kafka。

在 kafka 中,您可能有一个分区,并且每个消费者组都可以从该分区中读取数据,并且消费者会自行调整偏移量。您可以通过回滚偏移量来重新消费特定消费者组的消息。

http://cloudurable.com/images/kafka-architecture-kafka-consumer-groups.png

【讨论】: