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