RabbitMQ 多队列还是单队列?

RabbitQM multiple queues or single queue?

我开始使用 RabbitMQ 来管理我的 Hapi.js RESTful API 请求。基本流程是,一旦节点服务器收到请求,处理程序会将参数发送到一个队列,工作人员将使用它,然后将结果发送回另一个队列,该队列指向相应的处理程序。最后handler将结果回复给client。现在我有两个选择来设计框架。

1.Create 每个消费者一个队列。一旦队列充满请求,消费者将处理它。

2.Have 所有消费者只有一个队列。消费者会通过一些关键词从队列中抓取任务。

我考虑选项 2 的唯一原因是创建队列时会消耗内存。

有人有经验吗?我应该选择哪个选项?

这是来自 RabbitMQ 社区的回答:

这取决于您希望有多少个队列,但长期以来,单个队列一直被认为是一种反模式。 别这样。

可以使用一致性哈希或其他哈希算法将 N 个消费者映射到 M 个队列,但是 当 N 或 M 发生变化时,并非每个系统都可以接受 "mismapped" 值。