2

我正在使用 akka + camel 来消费来自 activemq 的消息,并且我试图弄清楚如何在不重复消息的情况下将这个消费者部署在多台机器上。在这种情况下,我正在使用来自某个主题的消息,并且 activemq 应该知道我在各种机器上都有一个 akka 系统,而不是各种单个独立的系统。

我尝试使用 akka 集群来实现这一点,但是该示例使用订阅后端集群的前端并没有帮助,因为我的“后端”参与者本身就是 activemq 消费者,我无法告诉 activemq 订阅我的集群。

有任何想法吗?

4

1 回答 1

3

JMS 版本 < 2.0 不允许多个节点共享一个主题订阅(不会将消息复制给每个消费者)。为了应对这种情况,ActiveMQ 提供了虚拟主题(您可以使用从允许多个消费者的队列发布到主题的消息 - 负载平衡)。

这都是命名约定。因此,您只需发布到主题VirtualTopic.Orders,然后从队列中消费Consumer.ClusterX.VirtualTopic.Orders。可以更改命名约定 - 请参阅文档。

http://activemq.apache.org/virtual-destinations.html

于 2015-07-02T10:49:35.823 回答