2

相互に通信するいくつかのシック クライアント アプリで構成されるシステムがあります。アプリは現在、rmi を介して相互に直接通信していますが、メッセージング フレームワーク、特に camel を使用するためのオプションを検討しています。

camel はスタンドアロンで実行できることは知っていますが (多くの場合、テストを行う場合)、コンテナーまたは esb にデプロイされることがよくあります。キャメルと通信するアプリがデスクトップ (swing) アプリだけの場合、スタンドアロン モードでキャメルを実行するのは適切ですか?

4

3 に答える 3

2

はい、いいえ。Camelはメッセージルーターであり、通話のルートを定義するのに役立ちます。ただし、通信プロトコルの選択には役立ちません。これにより、統合がより迅速になります(たとえば、JMSを使用してApp1 <-> App2、App2 <-> App3のRMI、およびApp2 <-> App3のその他のプロトコルを通信します)。

はい、Camelはスタンドアロンバージョンで展開される可能性があります。これを行う方法のリンクは次のとおりです。別のアプリケーションを作成することをお勧めします(ここではShade Mavenプラグインを使用してすべての依存関係を埋め込みます)。

ServicemixやFuseなどのESBの使用を検討することもできます。しかし、これはかなり大きな環境です...

于 2012-04-28T18:52:05.020 に答える
2

実際、ActiveMQ (たとえば 5.5.1) のバニラ インストール (解凍) は Camel にバンドルされます。conf/activemq.xml を編集して挿入するだけですどこか。conf/camel.xml で camel を構成します。ActiveMQ にはすべての Camel コンポーネントが付属しているわけではないため、追加の camel jar ファイルを /lib にドロップするだけです。たとえば /lib で RouteBuilder などを定義する独自の .jar ファイルをドロップするだけで簡単にできます。

于 2012-04-28T20:44:43.767 に答える
1

アプリケーション間の通信には、スタンドアロンの ActiveMQ ブローカー (通常はフェイルオーバー用に 2 つのインスタンス) を使用し、ラクダをシック クライアント アプリケーションに埋め込みます。その後、camel で pojo メッセージング機能を使用して、ほぼ透過的な通信を実現できます。

例については、私のブログを参照してください http://www.liquid-reality.de/x/NoBe

于 2012-04-29T06:47:39.930 に答える