0

この設計上の問題があり、JMS を使用してそれを実装する最善の方法を見つけようとしています。

Web アプリには、単一のリスナーと複数のプロデューサーと複数の WorkerBee があります。リスナーはメッセージをキューから WorkerBee にプッシュします。生成されたメッセージはすべてリスナーのキューに入れられます。ある種の負荷分散プロセスを使用して、Listener キューから各 WorkerBee にメッセージを送信できるプロセスを実装したいと考えています。Listener キューまたは WorkerBee キューには、メッセージのインスタンスが 1 つだけ発生します。

それを行う最良の方法は何ですか?ここでは、JMS が適切な選択のように思えますか? Listener キューから WorkerBee キューにメッセージをプッシュするにはどうすればよいですか?

提案をお待ちしています:)そして、あなたの応答に感謝します。

4

2 に答える 2

3

メッセージングは​​、このようなタスクに適しています。説明されている目的のために、 Apache Camelフレームワークをルーティング プラットフォームとして使用する必要があると思います。ビジネスロジックを統合レベルから非常に優雅な方法で分割できます。

Camelは、 JMS エンドポイントを含む「すぐに使用できる」多くのコンポーネントをサポートしています。Load Balancerパターンを使用して WorkerBee の 1 つに委任できます。

于 2013-04-02T13:08:26.613 に答える
2

WorkerBee の複数のインスタンスがあり、すべての WorkerBee が InWorkBeeQueue などの単一のキューをリッスンするため、JMS は適切なオプションのように思えます。

これで、Web アプリ リスナーから InWorkBeeQueue にメッセージを発行できるようになりました。このキューにメッセージをパブリッシュする単純な Java JMS プロデューサー コードを記述します。WorkBee のどのインスタンスが空いているかに応じて、InWorkBeeQueue からメッセージを読み取って処理します。

新しい JMS プロデューサー コードを記述したくない場合は、Apache Camel ルートを使用して Web アプリ キューから InWorkBeeQueue にメッセージを直接マップできます。

于 2013-04-02T13:35:09.463 に答える