169.11. 同時消費
JMS の一般的な要件は、アプリケーションの応答を改善するために、複数のスレッドでメッセージを同時に消費することです。concurrentConsumers オプションを設定して、JMS エンドポイントを提供するスレッド数を指定できます。
from("jms:SomeQueue?concurrentConsumers=20").
bean(MyClass.class);
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);
from("jms:SomeQueue?concurrentConsumers=20&asyncConsumer=true").
bean(MyClass.class);