170.11. 同時消費
JMS の一般的な要件は、アプリケーションの応答性を高めるために、複数のスレッドで同時にメッセージを消費することです。次のように、concurrentConsumers
オプションを設定して、JMS エンドポイントにサービスを提供するスレッドの数を指定できます。
from("jms:SomeQueue?concurrentConsumers=20"). bean(MyClass.class);
このオプションは、次のいずれかの方法で設定できます。
-
JmsComponent
で、 - エンドポイント URI または、
-
JmsEndpoint
で直接setConcurrentConsumers ()
を呼び出す。
170.11.1. 非同期コンシューマーによる同時消費
各同時コンシューマーは、現在のメッセージが完全に処理されたときに、JMS ブローカーから次に利用可能なメッセージのみを取得することに注意してください。オプション asyncConsumer=true
を設定すると、前のメッセージが (非同期ルーティングエンジンによって) 非同期に処理されている間に、コンシューマーが JMS キューから次のメッセージをピックアップできるようになります。asyncConsumer
オプションの詳細については、ページ上部の表を参照してください。
from("jms:SomeQueue?concurrentConsumers=20&asyncConsumer=true"). bean(MyClass.class);