今開発しているシステムに、MQを導入しようと考えている。今の所RabbitMQが第一候補だが、比較しているページなどを調べてみた。
- stackoverflow : ActiveMQ or RabbitMQ or ZeroMQ or
- Python messaging: ActiveMQ and RabbitMQ
- Second Life Wiki : Message Queue Evaluation Notes
- RabbitMQ vs Apache ActiveMQ vs Apache qpid
Pythonを使ってActiveMQとRabbitMQを比較している上記2のサイトが特に参考になる。要約すると:
- どちらも実用に耐えられる製品である
- 全体的に言うとActiveMQの方がRabbitMQよりも性能が良い
- RabbitMQはpulish(書き込み)が非同期なので高速だが、subscribe(読み出し)がそれに比較して遅い。書き込みが非常に多いケースだとメッセージがキューにたまっていくので、ベンチマークをすると一定の時間でクラッシュする。
- 同時に作成可能なキュー数は、ActiveMQだと64,000くらい、RabbitMQだと32,000くらい
ActiveMQも良さそうである。ただやはりActiveMQはJMSでJavaから使うのが普通っぽいし、ドキュメントもそういった使い方のものが多そうである。うちのシステムは今のところ大体がRuby。もちろんRuby用のクライアントライブラリも用意されているが、どうしようか。
No comments:
Post a Comment