Jms RabbitMQ扇出交换(虚拟对等)
出于以下几个原因,我正在考虑用RabbitMQ替换ActiveMQ。我目前拥有多个服务,每个服务都能够发布事件(它们将这些事件发布到AMQ中的特定VirtualPic)。每个服务还能够使用来自其他服务的消息。消费者被设置为作为消费者订阅VirtualPic上的队列 这使我能够将消息分散到多个队列(类似主题的功能),同时保留队列的好处(负载平衡和持久性) 看起来这大致相当于RabbitMQ的扇出交换。然而,我发现ActiveMQ非常有用的一点是,生产者不需要了解消费者。它只是发布到虚拟主题。在RabbitMQ中,当创建交换时,我似乎需要一个队列的最终列表来将消息发布到 tl;drJms RabbitMQ扇出交换(虚拟对等),jms,rabbitmq,activemq,Jms,Rabbitmq,Activemq,出于以下几个原因,我正在考虑用RabbitMQ替换ActiveMQ。我目前拥有多个服务,每个服务都能够发布事件(它们将这些事件发布到AMQ中的特定VirtualPic)。每个服务还能够使用来自其他服务的消息。消费者被设置为作为消费者订阅VirtualPic上的队列 这使我能够将消息分散到多个队列(类似主题的功能),同时保留队列的好处(负载平衡和持久性) 看起来这大致相当于RabbitMQ的扇出交换。然而,我发现ActiveMQ非常有用的一点是,生产者不需要了解消费者。它只是发布到虚拟主题。在Ra
RabbitMQ中是否存在与ActiveMQ的虚拟主题等效的路由方案,以便我可以生成到主题的消息,并将其分发到从该虚拟主题创建的任何队列,不需要在RMQ中的某个地方使用硬编码的路由方案?我在发布了这个问题后意识到,这样做非常简单(不确定为什么我以前从未想过) 我从错误的方向看问题,想知道如何让发布者自动为收件人配置队列——这不是解决这个问题的正确方法
相反,我让订阅者在启动时将自己绑定到发布者用户提供的交换,这提供了我正在寻找的控制反转(发布者不需要知道关于其消费者的任何信息).我一直在想,在ActiveMQ中,RabbitMQ相当于
主题
,但我仍然没有意识到扇出交换
是如何做同样的事情的。在ActiveMQ中,主题
可以有多个订阅者。在RabbitMQ中,扇出交换可以广播到多个队列。但是,如果任何接收队列都有多个使用者,那么这些使用者中只有一个可以从该队列中获取消息。这是否意味着扇出交换
仅在每个队列仅由一个使用者/订阅者使用时才像真正的主题
一样工作?作为旁白,您能否解释一下为什么要从ActiveMQ迁移到RabbitMQ?我正在考虑转向另一个方向,主要是为了能够使用AWS管理的ActiveMQ实例,我很想知道您是否在使用ActiveMQ时遇到了任何问题。ActiveMQ的操作负担远远超过了它的实用性。我们没有使用ActiveMQ提供的重要组件,在ActiveMQ中处理复制/集群要痛苦得多。此外,我们过去曾被不明原因的维修噩梦所咬。老实说,我相信它已经走了很长一段路,我相信AWS的产品比我们所能提供的更稳定。