3

私は現在、キャメルを使用しない取引アプリケーションに取り組んでいます。基本的に、取引を受け取り、何らかの処理を行い、詳細を外部システムに送信します。

現在、2 つのシステムに FTP を使用し、1 つのシステムに JMS を使用して、3 つの新しいシステムを統合する必要があります。

これらの統合のためにアプリケーションで Camel を使用したいと考えています。私は実際にラクダのかなりの部分を読んだことがありますが、ラクダのルートをどのように開始できるかについては明確ではありませんでした

基本的に、既存のアプリケーションは本番環境でうまく機能しているため、既存のアプリケーションのどの部分も大幅に変更したくありません。

既存のアプリケーションで Trade Value オブジェクトを生成し、このオブジェクトからキャメル統合を開始します。ルートを開始できるデータベース テーブルまたは jms キューがありません。

Camel in Action ブックの Bean のルーティングとリモーティングに関する章をざっと見ましたが、手順を進める前にまず人々のアドバイスを得たいと思いました。この統合に最適なアプローチは何ですか?

ありがとうダミアン

4

2 に答える 2

4

Java Bean から Camel エンドポイントにメッセージを送信できるCamel のPOJO プロデューシング機能を使用できます。JMS または DB が不要な場合は、「direct:」または「seda:」または「vm:」エンドポイントを<from>ルートの一部として使用できます。

于 2012-05-25T11:16:19.867 に答える
3

Konstantin V. Salikhovが述べたようにPojoが制作しています。ただし、Spring アプリケーションがあり、Bean を Spring または Wire でスキャンしていることを確認する必要があります。

「Bean が Spring XML で定義されているか、Spring コンポーネント スキャン メカニズムを使用してスキャンされ、または CamelBeanPostProcessor が使用されている場合、多くの Camel アノテーションを処理して、リソースの注入、メッセージの生成、消費、ルーティングなどのさまざまなことを行います。」

このアプローチでアプリケーションに多くの変更が加えられる場合は、ProducerTemplateを使用して、直接エンドポイントを呼び出すことができます。(またはその件についてはSEDA)。

ここでのプロトコルの選択は重要かもしれません。オーバーヘッドは単純なメソッド呼び出しであるため、ダイレクト プロトコルは安全な選択です。また、トランザクションと同様に、例外は直接エンドポイントを介して適切に伝播します。SEDA エンドポイントは (JMS のように) 非同期ですが、永続性を備えていないため、クラッシュした場合に飛行中のデータが失われる可能性がわずかにあります。これは問題になる場合とそうでない場合があります。ただし、負荷が高い場合は、SEDA プロトコルの段階が改善され、負荷のピークに対するアプリケーションの耐性が向上します。

于 2012-05-26T15:11:14.660 に答える