2011-03-23 60 views
0

有没有一种方法,我可以有一个直接交流模拟话题交换(我知道可以得到相反的结果:see here),但我的用例在这里是我已经有部署了大量队列的直接交换,每个队列都有路由密钥mykeyprefix.queue_name_here,我试图实现的目标是还有一个单独的队列,所有其他队列的所有消息最终都会分配给这个队列以供将来分析。RabbitMQ模拟话题交换与直接交换

回答

0

我不这么认为,或者至少不容易。直接交换缺少通配符绑定,因此您必须通过直接交换完成此操作的唯一选择是为每个可能的路由密钥添加一个重复队列,并将每个新队列绑定到同一个交换机。因为你有很多队列会很杂乱。

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