0

私は ActiveMQ を初めて使用し、stackoverflow 内で多くのグーグル検索と検索を行ってきましたが、次の質問に対する明確な回答がまだありません。

ActiveMQ は、パブリッシュされたメッセージをサブスクライバーのグループからラウンドロビン方式で 1 ​​つのサブスクライバーにのみ送信するように指示/構成できますか?

シナリオをもっとよく説明しましょう... 私たちの実稼働システムでは、明らかに、各 Web アプリケーション モジュールに対して複数のサーバーを実行しています。10 台のサーバーで実行されている webapp モジュール "USER" があるとします。各サーバーは、起動時にトピック「TOPIC1」にサブスクライブします。他のモジュール (または外部システム) がメッセージを TOPIC1 に発行します。10 台のサーバーすべてがまったく同じメッセージを受信するのは望ましくありません。むしろ、これらの 10 台のサーバーが「グループ」として TOPIC1 にサブスクライブされていることを ActiveMQ に認識させ、ラウンドロビン方式でそのうちの 1 つだけを選択してメッセージを送信するようにします。これを行うように ActiveMQ を構成できますか?

「メッセージグループを使おう!」と答える前に それらについてすべて読んだことをお伝えしますが、ActiveMQ を使用した「スティッキー」な負荷分散メカニズムのようです。つまり、これらの 10 台のサーバーから 1 つが選択され (ランダムに推測されます)、その時点から TOPIC1 に公開されたメッセージは常にそのサーバーに送信され、サーバー 1 ~ 10 が参加していることを指定する方法はありません。 TOPIC1 の「サブスクリプション グループ」と、ラウンド ロビン方式で TOPIC1 メッセージが与えられること。

誰かが私の仮定を確認または否定できますか? 確認した場合、上記のシナリオを実現するトピック サブスクライブの例はありますか?

ありがとう、ジャック

4

0 に答える 0