私はsedaとdirectを使って作業していました。まだセダとダイレクトの使い方を視覚化することはできません。 VMは私には新しいものです。例を挙げて説明してください。seda、vmとdirectの違いは何ですか?例を挙げて説明してください
答えて
1つのCamelルートが別の場所に直接データを渡すことができるメカニズムが少なくとも4つあります。 「直接」とは、ネットワークや何らかの形の中間ストレージ(ファイル、データベース)を使用せずに意味します。これらのメカニズムは、CamelContextインスタンス間でデータを渡すことができるかどうか、およびそれらが同期または非同期であるかどうかによってグループ化できます。
- ダイレクト - 単一CamelContext、同期(ブロックプロデューサー)
- SEDA - 単一CamelContext、非同期(プロデューサをブロックしない)
- VM - 複数CamelContext、非同期(プロデューサをブロックしない)
- 直接VM - 複数CamelContext、同期(ブロックプロデューサー)
は、直接と直接VM機構は、かかる最後までエンドポイントブロックを製造するという意味で、同期していますポイント、および残りのルーティングロジックがすべて完了したことを示します。 SEDAとVMの両方のメカニズムでは、コンシューマ上でスレッドのプールが使用され、プロデューサによって行われた各要求はプール内のスレッドの1つに割り当てられます。これにより、コンシューマのエンドポイントおよび関連するルーティングロジックは、プロデューサとは独立して動作することができます。
異なるCamelコンテキスト間で通信が行われる状況では、両方のVMエンドポイントが必要です。多くの場合、ルートを同じCamelContextに結合することは可能です。しかし、モジュール化の理由から不可能である場合もありますし、不可能な場合もあります。たとえば、ライブラリを他のコードで使用する意図で、キャラルルーティングロジックをライブラリ(またはコンポーネント)に実装することができます。完全にするために、このライブラリはおそらく、さまざまなルートを持つ自己完結型のCamelContextを定義します。ライブラリーのCamelロジックを呼び出す場合は、DirectおよびSEDAエンドポイントにCamelコンテキスト間のルーティングに必要なロジックが含まれていないため、VMまたはDirect-VMを使用する必要があります。
多くのお手伝いをしました....私はどのシナリオでそれらがリアルタイムで使用され、どのメカニズムが最も一般的に使用されているか知りたいです。 –
私はダイレクトを使用します:ほとんどの場合、ルーティング要素を整理するだけです。私の経験では、経路外の世界へのインタフェースを持つほとんどのCamel経路は、HTTP、データベース、FTP、ファイルなどの外部システムからデータを取り出し、他の外部システムにデータを生成します。直接:このような構成でエンドポイントを使用すると、ルーティングを簡単に読み取ることができます。このような状況では、セクション間のルーティングを非同期にするにはSEDAが必要になりますが、それは私の仕事では一般的ではありません。 –
direct:
とseda:
コンポーネントの違いは、最初のコンポーネントが同期し、2番目のコンポーネントが非同期でキューがあることです。
実際の違いは、同期メッセージを送信するためには、経路が完了するのを待つ必要がありますが、非同期メッセージの場合は、そのメッセージをキューに入れ、消費者が処理すると仮定します。複数のコンシューマ(並列化)を使用することもできます。
最後の例では、vm:
も非同期ですが、同じJVM内の異なるラクテルコンテキストでルートを呼び出すこともできます。アプリケーション1にはラクダのコンテキストがあり、アプリケーション2にはラクダのコンテキストがあり、このようにして互いに通信できるとします。
編集:関係で
は「何を使用する」に:あなたは並列化やキューを必要とするときに使用seda:
- 使用
direct:
が、使用しないでください - 使用
vm:
アプリケーション間で呼び出します。
はもちろん、他の多くのユースケースがありますが、それらは(私自身の経験に主観的な)一般的なもの
今、私はVMと感謝について明確なアイデアを得ました –
あなたは大歓迎です。 plsも私の編集を参照してください – vikingsteve
vmはいくつかのマシン間で配布されたアプリケーションで動作できますか? – gstackoverflow
- 1. 301 xmlパーサーエラーとは何ですか?例を挙げて説明してください。
- 2. Pythonは - 私は例を挙げて説明します
- 3. 明確な例でAngularJS $ injectorを説明してください
- 4. javaのSerializationでreadObjectNoDataを使用するのは何ですか?例を挙げて説明してください。
- 5. 3層アーキテクチャの良い例を挙げてください。
- 6. このSyncsortコードは何を説明してくださいか?
- 7. 以下のコードの違いを説明してください。
- 8. Outlookアドインが何であるか説明してください
- 9. PHPの例外は、説明してください
- 10. コード実行の相違点を説明してください
- 11. この例を説明してくださいCコード
- 12. parentNodeを説明してください
- 13. これらの構文の違いは何ですか?詳細を説明してください。
- 14. Pythonコード:説明してください
- 15. このSQLクエリは何をしますか?説明してください
- 16. GNU emacs lisp:with-wrapper-hookマクロは何をしますか?説明と例を教えてください。
- 17. XML SAX:ある例のXMLファイル `qName`と` localName`を説明してください
- 18. voidポインタの使用の違いを説明してください
- 19. GetとPostをASP.netで説明してください
- 20. このプログラムでは、出力を説明してください
- 21. スケーラでAbstractfunction1の使い方を説明してください
- 22. C#のプロパティのしくみを説明してください。
- 23. devm_kzallocのパラメータと用法を説明してください
- 24. oopで送信者と受信者を説明して例を挙げることができますか?
- 25. このjQueryセレクターについて説明してください。
- 26. 次のコードを詳しく説明してください
- 27. スカラからこのコーディングラインを説明してください。
- 28. Wordpressでのカテゴリの説明を参照してください。
- 29. 私は以下のクエリを説明してください
- 30. DSMについて簡単に説明してください。
これはApacheのラクダのフレームワークに固有の関連質問があります。私は答えを書いてくれるでしょう - 私が見ることができる限り、ここでダウン投票は必要ありません。 – vikingsteve
なぜこれを閉じるに投票しますか? OPが求めていることを完全に明確にしています。 google "apache camel components"とすぐに表示されます – vikingsteve