3

ブローカ レベルである程度のインテリジェンスを備えた膨大な量のメッセージ トラフィックを管理できるパブリッシュ/サブスクライブ分散メッセージング フレームワークを構築しようとしています。これを説明するトポロジがあるかどうかはわかりませんが、これは私が目指しているモデルです。

例のモデル A

A) 実行中のメッセージ ブローカーが 2 つあります (デモを簡単にするために、可能であればすべて localhost で実行するのが理想的です)。

  • ブローカー A
  • ブローカー B

B) 各ブローカーには 2 つのリスナーと 1 つのパブリッシャーがあります。

例図

[サブスクライバー A1、サブスクライバー A2、パブリッシャー A1] <--> BrokerA <--> BrokerB <--> [パブリッシャー B1、サブスクライバー B1、サブスクライバー B2]

  • メッセージ X がブローカー A にパブリッシュされ、Broker-B のリスナーに (メッセージ セレクターまたはブローカー ルーティング ルールの基準を介して) そのサブスクライバーが存在しない場合、そのメッセージ X はブローカー B にパブリッシュされません。

  • それ以外の場合、ブローカー A はブローカー B にメッセージを発行します。そこでは、ブローカー B のリスナー/サブスクライバー/サービスの 1 つがサブスクリプション基準に基づいてそのメッセージを期待しています。

クラスタリングは正しいアプローチですか?

最初に、これをサポートするには「ブローカー クラスタリング」の概念が必要であると結論付けました。ただし、私が理解しているように、クラスタリングの一般的な使用には次のいずれかが伴います。

  • すべてのブローカーにわたるメッセージの冗長性 ... または
  • 競合する消費者パターン

...そして、これらはどちらも、モデル例 A の要件を満たしていません。

正しいアプローチとは?

私の質問は、私が説明したモデルをサポートする JMS 実装を知っている人はいますか?

検索のために、stackoverflow のすべての投稿タイトル (JMS とクラスター) をスキャンしました。これらの 2 つの有益な投稿を見つけましたが、一見矛盾しているように見えます。

  1. 例のモデル A は暗黙的にサポートされている、またはサポートされるべきであると言います: ブローカーの ActiveMQ ネットワークを備えた JMS コンシューマー "これは、ブローカーを選択し、それに接続し、ブローカー ネットワークにそれらの間でそれを整理させることを意味します。理論的には."

  2. サンプル モデル A はサポートされていません: クラスター化されたアプリケーション サーバーの JMS トピック サブスクライバーはどのようにメッセージを受信しますか? 「異なるアプリ サーバーで実行されている PropertiesSubscriber のすべてのインスタンスは、そのメッセージを受け取ります。」

どんな提案でも大歓迎です。

私の投稿を読んでいただき、誠にありがとうございます。

遺伝子

4

2 に答える 2

0

GlassFishサーバーで問題を解決できるリンクをいくつか示します。

http://docs.sun.com/app/docs/doc/819-7759/aerdj?l=en&a=view

それが役に立てば幸い。

于 2010-05-13T21:28:30.643 に答える
0

WebSphere MQ は、次の場合にこの要件を満たします。

  • 2 つのキュー・マネージャーが WebSphere MQ クラスターに参加しています。
  • メッセージ トピックは、クラスタにアドバタイズされるか、クラスタにアドバタイズされるトピックのサブトピックです。

これらの要件が満たされていると仮定すると、パブリケーションはアクティブなサブスクリプションがある QMgr にのみ流れます。さらに、パブリケーションの範囲を管理的に指定することもできます。これは、メッセージ プロパティではなく、発行または購読されているトピックに適用されることに注意してください。QMgr はプロパティーに基づいてローカルでメッセージをフィルタリングしますが、プロパティーによるルーティングは WebSphere Message Broker の機能です。(WebSphere ファミリでは、WMQ はベース トランスポートであり、WMB はその上の層であり、変換、ルーティングなどを提供します。)

于 2010-05-10T20:50:34.093 に答える