5

イベント ドリブン アーキテクチャ (EDA) を使用して大まかなビジネス サービスの一部を統合することを検討しており、これらのサービスのサーバー側 (REST) は Java と .NET (C#) の両方で実装されています。私たちは当初、RabbitMQ (および AMQP プロトコル) をニュートラルでオープンな手段 (これら 2 つの言語での優れたクライアント サポート) として使用することを考えていましたが、Java と CLR と共に別のランタイム (Erlang) をサポートする必要があることを意味します。また、AMQP プロトコルの Java ブローカー実装を備えている Apache qPid も検討しています。これにより、その懸念が解消される可能性があります。

ActiveMQ の上でよりリッチな Apache Camel ESB を使用して Java と .NET サービスを Pub-Sub EDA 方式で統合しようとした経験のある人はいますか? これを通るルートに関して、他に考えられる提案を見逃していませんか?

ありがとう

4

4 に答える 4

0

.net アプリケーション用の Java エンドポイント アダプタを作成しました。.net アプリは、xml または json メッセージを camel エンドポイント (私の場合は TibcoEMS トピック) に発行します。ルーティング/フィルタリング/エンリッチメント/... はすべてキャメル内で処理されます。その後、交換は別のエンドポイントに配置され、Java アプリによって取得されます。

于 2010-07-17T14:36:23.157 に答える
0

Camel が本当に優れている ESB ユースケースの 1 つは「ルーティング」です。私の知る限り、キャメル ルーティング エンジンの .NET ポートはありません。したがって、.NET 側で Camel のルーティング機能を使用することはできません。ただし、camel は json、xml、pojos などのさまざまな交換フォーマットをサポートしています。xml または json を交換フォーマットとして使用して、Java と .NET 間の相互運用性を実現できるはずです。

于 2010-07-14T00:46:26.493 に答える
0

EDA をサポートするメッセージング プラットフォームだけを探している場合、Camel は厳密には必要ありません。Camel は、さまざまなペイロード形式間で変換し、Web サービス、メッセージング、RSS フィード、およびその他約 160の間でルーティングを行うためのフレームワークです。

上記の質問から、ActiveMQ は、すぐに使用できるユース ケースを処理できるはずです。

クライアントの観点から見ると、ActiveMQ は Java (JMS -標準) と C++/C# ( CMS / NMS - JMS のほぼ正確なコピー)の両方のライブラリをサポートしています。他の言語 (Ruby、Python、Javascript など) は、(ほぼ標準の) STOMPプロトコルを通じてサポートされています。

私は、.Net/Java が混在する環境で ActiveMQ を使用してきました。JMX 経由でお気に入りの監視ツールを使用してインストルメント化できる優れた Java ランタイムにすべて含まれています。

于 2012-07-11T10:25:51.757 に答える
0

うまくいくはずです!ActiveMQ は Java アプリケーションですが、適切に機能する .NET クライアント API があります。pub/sub のほとんどのニーズを満たす必要があります。途中でルーティングなどのロジックがさらに必要な場合は、実際には ActiveMQ が Camel にバンドルされているため、ルーティング、変換、変換などを ActiveMQ インスタンスで実行できます。XML を構成することによって (または Java/Scala コードによって) )。

とにかく ActiveMQ を介して通信を行う必要があるため、Camel を .NET で直接処理する必要はありません。ActiveMQ/Camel の組み合わせは、この種のタスクに対して非常に強力です - しかも無料です。

于 2012-07-11T13:29:53.707 に答える