RabbitQM多个队列还是单个队列?

时间:2017-02-26 18:19:58

标签: node.js rabbitmq amqp

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

1.为每个消费者创建一个队列。一旦队列填满了请求,消费者就会处理它。

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

我认为选项2的唯一原因是在创建队列时的内存成本计算。

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

1 个答案:

答案 0 :(得分:0)

这是RabbitMQ社区的答案:

这取决于您希望拥有多少队列,但单个队列一直被视为反模式。 不要这样做。

可以使用一致的散列或其他散列算法将N个消费者映射到M个队列,但是 当N或M发生变化时,并非每个系统都能接受“误映射”值。