27

最近、分散システム/計算に関心を持って、これらのAMQP(RabbitMQ、ActiveMQ)およびZeroMQテクノロジーの調査を開始しました。グーグルとStackOverflowを使って、2つの間の明確な比較を見つけることができませんでした。

私が得た最も遠いのは、2つは実際には比較できないということですが、違いを知りたいです。ZeroMQはより分散化されており(メッセージブローカーがメッセージを処理したり、配信を保証したりすることはありません)、高速ですが、本格的なシステムではなく、アクターのように、よりプログラム的に処理されるものです。

一方、AMQPはより本格的なシステムのようで、中央のメッセージブローカーが信頼性の高い配信を保証しますが、このためZeroMQよりも低速です。ただし、中央ブローカーは単一障害点を作成します。

おそらく、比喩はクライアント/サーバー対P2Pでしょうか?

私の発見は本当ですか?また、一方を他方の上に使用することの長所、短所、またはユースケースは何でしょうか?*MQとAkkaActorsのようなものの使用法の比較も同様に素晴らしいでしょう。

編集もう少し見回しました..ZeroMQはAMQPの新しい候補のようですが、はるかに高速であるようです。問題は採用/実装だけですか?

4

6 に答える 6

22

AMQPと0MQのかなり詳細な比較は次のとおりです。http ://www.zeromq.org/docs:welcome-from-amqp

0MQは、いくつかの実装とコミュニティを備えたプロトコル(ZMTP)でもあることに注意してください。

于 2012-10-18T06:33:04.973 に答える
14

AMQPはプロトコルです。ZeroMQはメッセージングライブラリです。

AMQPは、フロー制御と信頼性の高い配信を提供します。これは、メッセージの標準で拡張可能なメタデータを定義します(たとえば、reply-to、time-to-live、およびアプリケーションで定義されたヘッダー)。ZeroMQは、単にメッセージの区切りを提供し(つまり、バイトストリームをアトミック単位に分割し)、基盤となるプロトコル(TCPなど)のプロパティが十分であるか、アプリケーションがフロー制御や信頼性など、ZeroMQに加えて追加の機能を構築することを前提としています。 。

以前のバージョンのAMQPはクライアント/サーバーラインに沿って定義されていたため、ブローカーが必要でしたが、AMQP 1.0は、そのコアが対称的なピアツーピアプロトコルであるため、もはや当てはまりません。仲介業者(ブローカーなど)のルールは、その上に階層化されています。ブローカーとブローカーレスを比較するAlexisからのリンクは、そのような仲介者が提供できる利点の良い説明を提供します。AMQPは、さまざまなコンポーネント(クライアント、「スマートクライアント」、ブローカー、ブリッジ、ルーターなど)間の相互運用性のルールを定義し、有用なパーツを選択することでシステムを構成できるようにします。

于 2012-10-01T06:36:51.900 に答える
7

ZeroMQには、メッセージキューがまったくないため、この名前が付けられています。これは、通常のソケットよりもメッセージングセマンティクスを使用する方法を提供するだけです。

AMQPは、メッセージキューイングの標準プロトコルであり、すべてのメッセージの送受信を処理するメッセージブローカーで使用することを目的としています。ブローカーを介してすべてのメッセージトラフィックを集中させるため、利用可能な多くの機能があります。これは遅く聞こえるかもしれませんが、ホスト間の遅延が小さいデータセンター内で使用すると、実際には非常に高速になります。

于 2013-01-13T23:13:51.947 に答える
2

多くの異なるものを比較しているあなたの質問にどのように答えるかは本当にわかりません...しかし、これらの問題を掘り下げるのに役立つかもしれないこれを見てください:http ://www.rabbitmq.com/blog/ 2010/09/22 / broker-vs-brokerless /

于 2012-09-30T21:31:01.927 に答える
1

AMQP(Advanced Message Queuing Protocol)は、準拠するクライアントアプリケーションが準拠するメッセージングミドルウェアブローカーと通信できるようにする標準のバイナリワイヤレベルプロトコルです。AMQPを使用すると、異なる企業間または企業内のクロスプラットフォームサービス/システムで、メッセージブローカーのベンダーやプラットフォームに関係なく、相互にメッセージを簡単に交換できます。RabbitMQ、Apache QPid、ApacheApolloなどのAMQPプロトコルを実装しているブローカーはたくさんあります。

ZeroMQは、スケーラブルな分散アプリケーションまたは並行アプリケーションでの使用を目的とした高性能の非同期メッセージングライブラリです。メッセージキューを提供しますが、メッセージ指向ミドルウェアとは異なり、ØMQシステムは専用のメッセージブローカーなしで実行できます。

于 2014-12-08T06:08:53.180 に答える
1

ブローカーレスは、ActiveMQ、QPid、Kafkaなどの単純な配線のメッセージブローカーと比較すると、誤った呼び方です。

これは便利で、ホットスポットに適用してネットワークホップを削減し、遅延を減らすことができます。信頼性、ストアアンドフォワード機能、および高可用性の要件を追加するため、ゆるい結合をサポートするためにデータを共有するためのキューとともに分散ブローカーサービスが必要になる可能性があります-時間的に分離-このトポロジとアーキテクチャはZeroMQを使用して実装できます。使用例を検討し、非同期メッセージングが必要かどうかを確認する必要があります。必要な場合は、ZeroMQが適切な場合、それが表示されるソリューションで優れた役割を果たします。 TCP / IPとソケットプログラミングの合理的な知識は、ZeroMQ、AMQPなどの他のすべてを理解するのに役立ちます。

于 2016-12-15T13:42:54.950 に答える