RabbitMQ扇出交换(VirtualTopic等效)

时间:2014-03-10 11:55:55

标签: jms rabbitmq activemq

我正在寻找使用RabbitMQ交换ActiveMQ的原因有几个。我目前有多个服务,每个服务都能够发布事件(并且他们将这些事件发布到AMQ中的特定VirtualTopic)。每个服务还能够消费来自其他服务的消息。设置消费者使他们作为消费者订阅VirtualTopic上的队列。

这使我能够将消息传递到多个队列(类似主题的功能),同时保持队列的好处(负载平衡和持久性)。

看起来这大致相当于RabbitMQ的扇出交换。但是,我发现在ActiveMQ中非常有用的部分是生产者不需要了解消费者。它只是发布到虚拟主题。似乎在RabbitMQ中,当创建交换时,我需要一个明确的队列来发布该消息。

TL;博士

RabbitMQ中是否存在等同于ActiveMQ的虚拟主题的路由方案,这样我就可以向主题生成消息,该主题分发到从该虚拟主题创建的任何队列,而不需要硬编码路由在RMQ的某处?

1 个答案:

答案 0 :(得分:1)

我在发布这个问题之后意识到这样做非常简单(不知道为什么我以前从未想过它)。

我从错误的方向看着它,想知道我如何自动让发布者为收件人配置队列 - 这不是解决这个问题的正确方法。

相反,我有订阅者,当他们启动时,将自己绑定到发布者用户的交换,这提供了我正在寻找的控制反转(发布者不需要了解他们的消费者)。