2016-09-09 10 views
0

私は、異なる言語で書かれた複数のアプリケーションをシステムに持っています。これらのアプリケーション間でメッセージを送信することは良い方法ですか?異なるアプリケーション間の通信

アプリケーションは異なる言語で書かれているため、JMSはオプションではありません。現在、MQ、Webサービス、ESBサービスなどのアイデアがあります。

ESBがベストプラクティスですか?

いくつかの提案をお願いします。ありがとうございます!

EDIT 一部のアプリケーションは、非常に時間がかかるので、RPCコールは(少なくともRPCをブロックすることは本当に良いではない)、多分これも考慮に入れる必要があります。

+0

[RabbitMQ](https://www.rabbitmq.com/)を検討する必要があります。 – pdoherty926

+0

実際に私はRabbit MQを一時的なソリューションとして使用していますが、より多くの並行要求が発生した場合に最適な解決策であるかどうかは不明です。 – Simon

答えて

0

私はZeroMQとGoogleプロトコルバッファーを真剣に検討します。両方とも、多くのプラットフォームで幅広い言語で十分サポートされています。

ZeroMQは、同じコンピュータ上またはネットワーク上で実行されているアプリケーションまたはスレッド間でバイトを移動するための優れた方法です。

Googleプロトコルバッファは、これらのバイトを自分で大量のコードを書かなくても、すべてのアプリケーションやスレッドに役立つ優れた方法です。これもバイナリなので、送信されるデータは便利です。

例えば、ARM CPU上のLinux上で動作するC++で書かれた1つのプログラムを、Windows上のJavaで動作する別のプログラムと会話するのはかなり簡単です。

ベストプラクティスは、余分なサービスやサーバーをセットアップする必要がないということを意味している場合、これらの2つはあなたが望むものです。

+0

私が正しく理解していれば、Googleプロトコルバッファを使用してデータをシリアル化してから、ZeroMQを使ってメッセージを送信するというアプローチですか?もしそうなら、他のMQと比較してGPONをJSONやZeroMQで使うとどんなメリットがありますか? – Simon

関連する問題