【发布时间】:2014-04-13 12:16:29
【问题描述】:
出于几个原因,我正在考虑用 RabbitMQ 替换 ActiveMQ。我目前有多个服务,每个服务都能够发布事件(并且它们将这些事件发布到 AMQ 中的特定 VirtualTopic)。每个服务还能够使用来自其他服务的消息。消费者被设置为以消费者的身份订阅 VirtualTopic 上的队列。
这让我能够将消息发送到多个队列(类似主题的功能),同时保持队列的优势(负载平衡和持久性)。
这似乎大致相当于 RabbitMQ 的扇出交换。但是,我发现 ActiveMQ 中非常有用的部分是生产者不需要了解消费者。它只是发布到虚拟主题。似乎在 RabbitMQ 中,当创建交换时,我需要一个明确的队列来发布该消息。
tl;dr
RabbitMQ 中是否有任何与 ActiveMQ 的虚拟主题等效的路由方案,这样我就可以向某个主题生成消息,这些消息被分发到从该虚拟主题创建的任何队列中,而无需硬编码路由计划在 RMQ 的某个地方?
【问题讨论】:
-
作为旁注,您能解释一下为什么要从 ActiveMQ 迁移到 RabbitMQ 吗?我正在考虑朝另一个方向发展,主要是为了能够使用 AWS 托管的 ActiveMQ 实例,我很想知道您是否对 ActiveMQ 有任何影响。
-
ActiveMQ 的操作负担远远超过了它的实用性。我们没有使用 ActiveMQ 提供的重要组件,而且在 ActiveMQ 中处理复制/集群更加痛苦。另外,我们过去曾被无法解释的维护噩梦所困扰。老实说,我确信它已经走了很长一段路,而且我确信 AWS 的产品比我们所能提供的更稳定。