如何使用routing_key和队列

时间:2012-08-10 09:32:55

标签: rabbitmq amqp pika

我正在建立一个能够收听来自两个不同来源的消息的消费者。我希望对来自这两个来源的消息进行不同的回调(尽管欢迎使用其他解决方案)。

我对rabbitmq和pika很新,我还没有掌握细节。但我想知道的是:

我应该使用不同的队列并设置两个

channel.basic_consume(callback_1, ...)
channel.basic_consume(callback_2, ...)

我的回调或者我应该用路由键做一些技巧吗?

1 个答案:

答案 0 :(得分:0)

这取决于你的需求。这真的是关于处理,我最熟悉Java,所以我会告诉你如何处理事情然后你可以根据它做出决定。

如果我需要让不同的线程处理不同的数据或对数据执行不同的操作,我会创建两个不同的队列,每个线程将使用不同的队列。我使用主题交换来确保队列获得正确的消息。如果数据只是略有不同,那么使用路由密钥我可以使用相同的线程以不同的方式处理数据。这个决定纯粹基于我需要的并行性,即我想要处理数据的队列数量。