Thursday, February 16, 2012

RabbitMQ / ActiveMQ, and so on.

今開発しているシステムに、MQを導入しようと考えている。今の所RabbitMQが第一候補だが、比較しているページなどを調べてみた。

  1. stackoverflow : ActiveMQ or RabbitMQ or ZeroMQ or
  2. Python messaging: ActiveMQ and RabbitMQ
  3. Second Life Wiki : Message Queue Evaluation Notes
  4. 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: