1

jms トピックをリッスンしている Java クラスProcessorがあり、メッセージが到着する速度に追いつくのに苦労しているため、同時進行することにしました。

トピックをリッスンする単一のクラスの仕事は、メッセージをワーカー スレッドのプールに渡すことであり、事実上ロード バランサーになります。また、2 つのワーカーが同じ顧客のメッセージを処理するのを防ぐ必要があります。

これについてはインターネット上にかなり多くの情報があると予想していましたが、アプリケーション サーバーがプールを管理し、バランスを取る EJB の使用を示唆しているようです。これは非常に一般的な問題であるに違いないと確信していますが、支援するライブラリやデザイン パターンが見つからないようです。自分のコードを掘り下げて書く必要があるのでしょうか?

4

2 に答える 2

1

トピックの代わりにキューを使用して、同じアプリケーションの複数のインスタンスにこのキューからのメッセージを処理させてみませんか?

于 2010-06-29T11:36:43.787 に答える
0

これは、リスナーのプールを使用して簡単に解決できる問題です。それが、アプリサーバーがあなたのために行っていることです。

優れたアプリ サーバーを入手し、その MDB を使用してこれをすばやく解決します。遅れないようにプールのサイズを調整すれば、問題ありません。

どうしても独自のコードを書く場合は、優れたオープン ソース プールの実装を入手して使用してください。

非 EJB でなければならない場合は、Spring を検討してください。メッセージ駆動型のPOJOがあり、まさに必要なものです。

于 2010-06-29T12:39:28.850 に答える