私は Camel を試しており、エンドポイントの統合に便利なツールであることがわかりました。次の実験用アプリケーションをセットアップしました。
最初のエンドポイントは単純な http-get リクエストです (コマンド ラインで curl を使用)。これは、Jetty (これは Camel ベースのアプリです) を使用して中央スイッチとインターフェイスします。これはいくつかの基本的な調整を行い、リクエストを処理する別のエンドポイント (Thrift サーバー) にリクエストを渡します。その応答は、コマンドライン クライアントに返されます。したがって、セットアップは一種の階層 3 オーバーエンジニアリングされた Hello-world アーキテクチャです。
私のルートは通常、次の形式を取ります。
from("jetty:http://localhost:8080/hello").process(new DummyProcessor()).process(new HelloProcessor());
私の質問は次のとおりです。
HelloProcessor が Thrift メッセージを別のエンドポイントに送信して処理することを考えると、これはむしろコンポーネントであるべきではありませんか? そのようなタスクにプロセッサを使用することは良い (許容できる) 慣行ですか? さらに、実際に許容できる場合、コンポーネントを作成する利点は何ですか。