在我的应用程序中,我有一个系统可以将消息发布到多个队列。例如,我有3个RabbitMQ队列,消息被发布到这3个队列。目前我有3个消费者用于这3个队列。现在我需要进行修改,我想为两个队列使用单个消费者。我们可以为多个队列使用一个订阅者吗?如何在RabbitMQ中实现这一点?
在我的应用程序中,我有一个系统可以将消息发布到多个队列。例如,我有3个RabbitMQ队列,消息被发布到这3个队列。目前我有3个消费者用于这3个队列。现在我需要进行修改,我想为两个队列使用单个消费者。我们可以为多个队列使用一个订阅者吗?如何在RabbitMQ中实现这一点?
一种实现方式是使用channel.basicConsume(QUEUE_NAME,,);(对于Java,其他语言也有类似情况),并指定您要消费的队列。因此,在这种情况下,您可以使用两个这样的命令,指定您要从中消费的2个或更多队列。
对于php,代码看起来像这样:
$channel->basic_consume('QUEUE_NAME', '', false, true, false, false, $callback);
只需为您想要从中消费的队列调用它即可。