ActiveMQ - 结合发布订阅和点对点

问题描述 投票:0回答:1

有没有办法用ActiveMQ实现一个拓扑,其中P是发布者,s_a是服务A的订阅者,s_b1和s_b2是服务B的订阅者。后者设置在集群中用于负载均衡(所以s_b1或s_b2收到一条消息,但不是两者都收到)。

是否有一种方法将发布-订阅与点对点消息传递相结合,以便其中一个订阅者将成为两个消费者正在侦听的队列?

jms activemq publish-subscribe p2p
1个回答
3
投票

是的,这是可以做到的。

您可能需要查看 Apache ActiveMQ Artemis,它实现了 JMS 2.0 并支持您开箱即用的要求。 JMS 2.0 允许每个主题有多个订阅者来平衡集群的负载。

对于 ActiveMQ 和 JMS 1.0,您可以使用 虚拟目标。他们使用命名约定。

如果您将主题命名为:

VirtualTopic.StockPrice
并向其发布消息,您将能够从名为
Consumer.Consumer1.VirtualTopic.StockPrice
Consumer.Consumer2.VirtualTopic.StockPrice
等的队列中进行消费。Consumer1 可以是任何内容。

您可以重新配置 ActiveMQ 以使用其他名称作为虚拟目标(前缀、后缀等)。

© www.soinside.com 2019 - 2024. All rights reserved.