質問: ZeroMQ、RabbitMQとApache Qpidのパフォーマンス比較 `RabbitMQ` と `Apache Qpid` のパフォーマンスを評価するために、アプリケーション用の高性能メッセージバスが必要です。パフォーマンスを測定するために、私は、メッセージキューの実装の1つを使用して10,000のメッセージを発行し、同じマシンで別のプロセスを実行して10,000のメッセージを消費するテストプログラムを実行しています。次に、公開された最初のメッセージと受信した最後のメッセージの時間差を記録します。 以下は私が比較に使用した設定です。 1. `RabbitMQ`: I used a "fanout" type exchange and a queue with default configuration. I used the RabbitMQ C client library. 2. `ZeroMQ`: My publisher publises to `tcp://localhost:port1` with `ZMQ_PUSH` socket, My broker listens on `tcp://localhost:port1` and resends the message to tcp://localhost:port2 and my consumer listens on `tcp://localhost:port2` using `ZMQ_PULL` socket. I am using a broker instead of peer to to peer communication in `ZeroMQ` to to make the performance comparison fair to other message queue implementation that uses brokers. 3. `Qpid` C++ message broker: I used a "fanout" type exchange and a queue with default configuration. I used the Qpid C++ client library. パフォーマンス結果は次のとおりです。 1. `RabbitMQ`: it takes about 1 second to receive 10,000 messages. 2. `ZeroMQ`: It takes about 15 milli seconds to receive 10,000 messages. 3. `Qpid`: It takes about 4 seconds to receive 10,000 messages. **質問:** 1. 誰かにメッセージキュー間で同様のパフォーマンス比較を実行させますか?次に、結果をあなたのものと比較したいのです。 2. パフォーマンスを向上させるために `RabbitMQ` や `Qpid` をチューニングできる方法はありますか? **注:** テストは、割り当てられた2つのプロセッサを持つ仮想マシン上で実行されました。結果はハードウェアによって異なる場合がありますが、主にMQ製品の相対的なパフォーマンスに関心があります。
回答: ZeroMQの上に構築されたオープンソースのメッセージバスを開発しました。最初はQpidを置き換えるためにこれを行いました。それはブローカレスなので完全に公正な比較ですが、ブローカされたソリューションと同じ機能を提供します。 Our headline performance figure is 140K msgs per second between two machines but you can see more detail here: