まず第一に、現在キャメルの開発に携わっている人々に感謝します。彼らが尽力してくれたすべての努力に感謝します。
デザインのアドバイスを探しています。
アーキテクチャは次のようなものです。インスタンス化されたときに相互に接続し、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とメッセージを常に呼び出しますか?
これを設定するためのさまざまな方法を試していると、オプションが不足しました。どんな助けでもいただければ幸いです。