290.4. Request Reply (リクエストリプライ) の利用

SEDA コンポーネントは、発信者が非同期ルートの完了を待機する Request Reply の使用をサポートしています。たとえば、以下のようになります。

from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("seda:input");

from("seda:input").to("bean:processInput").to("bean:createResponse");

上記の経路では、受信リクエストを受け入れるポート 9876 に TCP リスナーがあります。リクエストは seda:input キューにルーティングされます。Request Reply メッセージなので、レスポンスを待ちます。seda:input キューのコンシューマーが完了すると、応答を元のメッセージ応答にコピーします。

注記

2.2 まで: 2 つのエンドポイントでのみ動作 SEDA または 仮想マシン を介した Request Reply の使用は、2 つのエンドポイントでのみ動作します。A → B → C などに送信してエンドポイントをチェーンする ことはできません。A → B の間のみ。理由は、実装ロジックがかなり単純だからです。3 つ以上のエンドポイントをサポートすると、待機中のスレッド間の順序付けと通知を適切に処理するためのロジックがより複雑になります。これは Camel 2.3 以降で改善され、好きなだけエンドポイントをチェーンできるようになりました。