7

私は JMS を初めて使用し、Tomcat 6 と Spring を使用して ActiveMQ をセットアップしています。ほとんどの基本的な構成は完了していますが、Spring が提供するメッセージ リスナー コンテナーとは少し混乱しています。ドキュメンテーションを読むと、メッセージ リスナー コンテナがサブスクライブ (私はトピックで作業しています)、サブスクライブ解除、およびメッセージのリスナーへの配信を「処理」するために使用されているようです。これについて正しく考えているかどうかはわかりません。この場合、メッセージ リスナ コンテナを使用して複数のクラスを同じトピックにサブスクライブさせる方法に関するドキュメントはありません。messageListener プロパティを設定できることがわかりましたが、それでは 1 つのクラスのみがトピックにサブスクライブできます。しません」

誰かが私のためにこれに光を当てることができますか? 少し戸惑うこともあるかと思います。

前もって感謝します!

4

3 に答える 3

4

メッセージ駆動型EJBに精通している場合は、SpringMessageListenerContainerが事実上MDBの代わりになります。この名前は、JMSトピック/キューおよび単一のJMS MessageListenerに接続されており、そのトピック/キューからメッセージをプルしてMessageListenerにフィードするために付けられました。

一度に各コンテナーに登録できるMessageListenerは1つだけですが、MessageListenerContainerコードは非常に複雑になる可能性がありますが、実際には非常に軽量なランタイムコンポーネントであると考えてください。それのいくつかのインスタンスを作成することを恐れないでください。

また、状況に適したMessageListener実装を選択するようにしてください。SimpleとDefaultの実装は実際にはまったく異なりますが、どちらも「優れている」わけではありません。

于 2009-06-07T08:00:41.843 に答える
2

複数のコンテナが役立つというのは正しいですが、それは間違ったアプローチのように見えます。JMSの目標は、内部アプリケーションプロセス(あなたが話しているいくつかのクラス)ではなく、さまざまなアプリケーション/サービスを統合することです。Message Listener でメッセージを受け取った後、自分で別のクラスにメッセージをプッシュすることをお勧めします。それ以外の場合は、Apache Camel や Spring Integration などのフレームワークを検討してください。

于 2012-06-26T06:13:05.183 に答える
0

コンテナーは、POJO をキューまたはトピックからメッセージを受信するように「適応」させる一種のラッパーです。複数のリスナーが必要な場合は、複数のコンテナーになります。

于 2009-06-04T20:43:05.000 に答える