【发布时间】:2016-05-04 07:40:27
【问题描述】:
有没有办法用ActiveMQ实现拓扑,其中P是发布者,s_a是服务A的订阅者,s_b1和s_b2是服务B的订阅者。后者设置在集群中进行负载均衡(所以s_b1或 s_b2 收到一条消息,但不是两者都收到)。
有没有一种方法可以将发布-订阅与对等消息传递相结合,以便其中一个订阅者成为两个消费者正在侦听的队列?
谢谢,
吉尔
【问题讨论】:
标签: jms activemq publish-subscribe p2p
有没有办法用ActiveMQ实现拓扑,其中P是发布者,s_a是服务A的订阅者,s_b1和s_b2是服务B的订阅者。后者设置在集群中进行负载均衡(所以s_b1或 s_b2 收到一条消息,但不是两者都收到)。
有没有一种方法可以将发布-订阅与对等消息传递相结合,以便其中一个订阅者成为两个消费者正在侦听的队列?
谢谢,
吉尔
【问题讨论】:
标签: jms activemq publish-subscribe p2p
是的,这可以做到。
您可能想查看实现JMS 2.0 的Apache ActiveMQ Artemis 并支持您开箱即用的要求。 JMS 2.0 允许每个主题的多个订阅者对集群进行负载平衡。
对于 ActiveMQ 和 JMS 1.0,您可以改用 Virtual Destinations。它们使用命名约定。
如果您将主题命名为:VirtualTopic.StockPrice 并向其发布消息,您将能够从名为 Consumer.Consumer1.VirtualTopic.StockPrice、Consumer.Consumer2.VirtualTopic.StockPrice 等的队列中消费。Consumer1 可以是任何东西。
您可以重新配置 ActiveMQ 以使用其他名称作为虚拟目标(前缀、后缀等)。
【讨论】: