ActiveMQ | RabbitMQ | RocketMq | ZeroMQ | |
關注度 | 高 | 高 | 中 | 中 |
成熟度 | 成熟 | 成熟 | 比較成熟 | 不成熟 |
所屬社區/公司 | Apache | Mozilla Public License |
Alibaba | |
社區活躍度 | 高 | 高 | 中 | 低 |
文檔 | 多 | 多 | 中 | 中 |
特色 | 功能齊全,被大量開源項目使用 | 因爲Erlang 語言的併發能力,性能很好 | 各個環節分佈式擴展設計,主從 HA;支持上萬個隊列;多種消費模式;性能很好 | 低延時,高性能,最高 43萬條消息每秒 |
受權方式 | 開源 | 開源 | 開源 | 開源 |
開發語言 | Java | Erlang | Java | C |
支持的協議 | OpenWire、 STOMP、 REST、XMPP、 AMQP |
AMQP | 本身定義的一 套(社區提供 JMS--不成熟) |
TCP、UDP |
客戶端支持語言 | Java、C、 C++、 Python、 PHP、 Perl、.net 等 |
Java、C、 C++、 Python、 PHP、Perl 等 |
Java C++(不成熟) |
python、 java、 php、.net 等 |
持久化 | 內存、文件、數據庫 | 內存、文件 | 磁盤文件 | 在消息發送端保存 |
事務 | 支持 | 不支持 | 支持 | 不支持 |
集羣 | 支持 | 支持 | 支持 | 不支持 |
負載均衡 | 支持 | 支持 | 支持 | 不支持 |
管理界面 | 通常 | 好 | 無社區有 web console 實現 |
無 |
部署方式 | 獨立、嵌入 | 獨立 | 獨立 | 獨立 |
評價 | 優勢: 成熟的產品,已經在不少公司獲得應用(非大規模場景)。有較多的文檔。各類協議支持較好,有多重語言的成熟的客戶端; 缺點: 根據其餘用戶反饋,會出莫名其妙的問題,切會丟失消息。 其重心放到activemq6.0 產品—apollo 上去了,目前社區不活躍,且對 5.x 維護較少; Activemq 不適合用於上千個隊列的應用場景 |
優勢: 因爲erlang語言的特性,mq 性能較好;管理界面較豐富,在互聯網公司也有較大規模的應用;支持amqp系誒,有多中語言且支持 amqp 的客戶端可用 缺點: erlang語言難度較 大。集羣不支持動態擴展。 |
優勢: 模型簡單,接口易用(JMS 的接口不少場合並不太實用)。在阿里大規模應用。目前支付寶中的餘額寶等新興產品均使用rocketmq。集羣規模大概在50 臺左右,單日處理消息上百億;性能很是好,能夠大量堆積消息在broker 中;支持多種消費,包括集羣消費、廣播消費等。開發度較活躍,版本更新很快。 缺點: 沒有在 mq 核心中去實現JMS 等接口, |