第34章 Direct


Direct コンポーネント

direct: プロデューサーがメッセージエクスチェンジを送信する際に、コンポーネントはコンシューマーを直接同期呼び出しを提供します。このエンドポイントは、同じ Camel コンテキストの既存ルートを接続するために使用できます。
注記
SEDA コンポーネントは、プロデューサーがメッセージエクスチェンジを送信するときに、コンシューマーの非同期呼び出しを提供します。
注記
VM コンポーネントは、同じ JVM で実行されている限り、Camel コンテキスト間の接続を提供します。

URI 形式

direct:someName[?options]
Copy to Clipboard Toggle word wrap
someName には、エンドポイントを一意に識別する任意の文字列を指定できます。

オプション

Expand
名前 デフォルト値 説明
block false Camel 2.11.1: アクティブなコンシューマーのないダイレクトエンドポイントにメッセージを送信する場合は、プロデューサーにブロックし、コンシューマーがアクティブになるのを待つようにプロデューサーに指示することができます。
timeout 30000 Camel 2.11.1: ブロックが有効な場合に使用するタイムアウト値。
failIfNoConsumers true
Camel 2.16.0: アクティブなコンシューマーのない DIRECT エンドポイントに送信するときにプロデューサーが例外を出力して失敗するかどうかを示します。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。

サンプル

以下のルートでは、direct コンポーネントを使用して 2 つのルートをリンクします。
from("activemq:queue:order.in")
    .to("bean:orderServer?method=validate")
    .to("direct:processOrder");

from("direct:processOrder")
    .to("bean:orderService?method=process")
    .to("activemq:queue:order.out");
Copy to Clipboard Toggle word wrap
Spring DSL を使用した例:
   <route>
     <from uri="activemq:queue:order.in"/>
     <to uri="bean:orderService?method=validate"/>
     <to uri="direct:processOrder"/>
  </route>

  <route>
     <from uri="direct:processOrder"/>
     <to uri="bean:orderService?method=process"/>
     <to uri="activemq:queue:order.out"/>
  </route>
Copy to Clipboard Toggle word wrap
SEDA コンポーネントの例、どのように併用できるかも併せて参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat