2

まず第一に、現在キャメルの開発に携わっている人々に感謝します。彼らが尽力してくれたすべての努力に感謝します。

デザインのアドバイスを探しています。

アーキテクチャは次のようなものです。インスタンス化されたときに相互に接続し、ApacheCamelを使用してメッセージを送信するために必要なJavaクラスがたくさんあります。設計上の制約により、すべてのルーティング情報、プロデューサー、コンシューマー、エンドポイントなどがcamel-context.xmlの一部になるようなフレームワークを作成する必要があります。

個人は、そのようなファイルを変更し、Javaコードを使用せずに既存のルートを完全に変更する機能を備えている必要があります(Javaコードは提供されず、コンパイルされたJarのみが提供されます)。

たとえば、Oneセットアップでは、 Bean A-> Bean B-> Bean C->file->emailです。 別の BeanB->Bean A-> Bean C-> ftp-> file-> email さまざまなアプローチを試しましたが、元のBeanがJava DSLとして実装されていない場合、ラクダが常に呼び出すため、メッセージレートは非常に高くなります。最初の例ではBeanA、2番目の例ではBean B(これらはソースです)。

BeanAとBeanBはメッセージを発信し、イベント駆動型です。必要なイベントが発生した場合、Beanは通知メッセージを送信します。

私の変換は非常に単純で、JavaDSLの能力はまったく必要ありません。要約すると、次の質問があります。

1)上記の制約を考慮して、宛先アドレスを含むすべてのルーティング情報がすべてラクダのコンテキストファイルの一部であることを確認しますか?

2)ルーティング情報をJavaコードから完全に独立させるために見ることができる例はありますか?

3)Camelが元のBeanを常に呼び出さないようにするにはどうすればよいですか?

4)Camelは、メッセージングキュー全体でのBeanの位置に関係なく、発信元のBeanまたは送信先のBeanとメッセージを常に呼び出しますか?

これを設定するためのさまざまな方法を試していると、オプションが不足しました。どんな助けでもいただければ幸いです。

4

2 に答える 2

3

Camelwikiページでミドルウェアを非表示にする方法について読んでください。これにより、クライアントがインターフェイスを使用してメッセージを送受信できるようになりますが、Camelをまったく認識しません(Camel APIはまったく使用されません)。

Camel in Actionの本を購入することを検討し、これについて説明している第14章を読んでください。 http://www.manning.com/ibsen/

マニングブックの41%割引:CamelinActionまたはActiveMQinAction。コードs2941を使用します。10月6日に有効期限が切れます。http://www.manning.com/ibsen/

于 2010-10-04T10:43:30.277 に答える
0

FuseESBのServiceMixの使用を検討している場合は、ルートを2つの部分に分割することをお勧めします。

最初の部分は、ルートをトリガーするイベントドライバーBeanです。メッセージをServiceNMRにプッシュする可能性があります(http://camel.apache.org/nmr.htmlを参照)。

他の部分は、SpringDSLを使用してフレームワークユーザーに任されます。NMRでメッセージを聞いて(他のルートでプッシュ)、好きなように操作します。

もちろん、エンドポイント定義は、servicemix構成サービスを使用してプロパティ化できます(http://camel.apache.org/properties.html#Properties-UsingBlueprintpropertyplaceholderwithCamelroutesを参照)

于 2012-02-15T08:52:43.887 に答える