257.8.2. Backpressure(コンシューマー側)の制御
Camel がリアクティブストリームパブリッシャーからのアイテムを消費すると、インフライトエクスチェンジの最大数をエンドポイントオプションとして設定できます。
コンシューマーに関連付けられたサブスクライバーはパブリッシャーと対話し、ルート内のメッセージ数はしきい値を下回るようにします。
backpressure-aware ルートの例:
from("reactive-streams:numbers?maxInflightExchanges=10") .to("direct:endpoint");
(リアクティブストリームバックプレシャーメカニズムを介して)Camel がソースパブリッシャーにリクエストするアイテムの数は、常に 10
未満です。メッセージは Camel 側の単一スレッドによって処理されます。
同時コンシューマー(threads)の数はエンドポイントオプション(concurrent
Consumer)として設定することもできます。1 つのコンシューマー(デフォルト)を使用する場合、ソースストリームの項目の順序が維持されます。この値を増やすと、アイテムは複数のスレッドによって同時に処理されます(つまり、順番は保持されません)。