2

akka + camel を使用して activemq からのメッセージを消費しています。メッセージを複製せずにこのコンシューマーを複数のマシンにデプロイする方法を見つけようとしています。この場合、私はトピックからのメッセージを消費しており、activemq は、さまざまな単一の独立したシステムではなく、さまざまなマシンに 1 つの 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 に答える