首页 文章

RabbitMQ Single Consumer,消耗来自多个队列的消息

提问于
浏览
0

在我的应用程序中,我有一个系统,它将消息发布到多个队列 . 作为一个例子,我有3个RabbitMQ队列,并且消息被发布到这3个队列 . 目前我有3个消费者为这3个队列 . 现在我需要做一个修改,我希望有两个队列的单个消费者 . 我们可以将一个用户用于多个队列 . 怎么能在RabbitMQ中完成?

2 回答

  • 0

    可以这样做的一种方法是使用 channel.basicConsume(QUEUE_NAME,,); (对于Java,类似其他语言的情况)并指定要使用的队列 . 因此,在这种情况下,您可以使用两个这样的命令来指定要使用的2个或更多队列 .

    在php的情况下,代码看起来像这样:

    $ channel-> basic_consume('QUEUE_NAME','',false,true,false,false,$ callback);

    只需要为您想要使用的队列调用它 .

  • 0

    AFAIK不可能使用相同的通道同时使用多个队列 . 至少当我试图这样做时,对我来说不起作用 . 另外,在不同的线程上使用相同的通道可能并不安全 .

    最好创建一个单独的通道来从每个队列中使用 .

    通道它是足够轻量级的实体 - 它使用相同的TCP连接 . 通道的主要目的 - 通过相同的tcp连接复用不同的查询 .

相关问题