RabbitMQ用直接交换来模拟主题交换

时间:2011-03-23 10:43:33

标签: rabbitmq amqp

有没有办法让我可以直接交换模拟主题交换(我知道可以获得相反的结果:see here),但我的用例是我已经部署了直接交换批量对于队列,每个具有路由键mykeyprefix.queue_name_here的队列以及我想要实现的目标是还有一个单独的队列,来自所有其他队列的所有消息都将结束以供将来分析。

1 个答案:

答案 0 :(得分:0)

我不相信,或者至少不容易。直接交换缺少通配符绑定,因此使用直接交换进行此操作的唯一选择是为每个可能的路由键添加重复队列,并将每个新队列绑定到同一个交换。因为你有很多队列会很混乱。

鉴于您的要求完全通过使用主题交换来满足,我很好奇为什么您不能只使用它。您的生产者不关心(因为他们只是将消息推送到Exchange)并且您的消费者不需要更改(因为他们只是从可以绑定到任何类型的Exchange的队列中拉出来)。对于迁移,您可以将队列绑定到两个Exchange,然后从旧的直接交换中取消绑定它们。当你移动每个队列时,你可以删除直接交换,只留下你真正需要的那个好主题交换。