MQ消息中間件對比


目前系統間數據交換,普遍采用的是基於消息隊列中間件(MQ)實現。但目前開源的消息中間件琳琅滿目,常見就有RocketMQ、ActiveMQ、RabbitMQ、Kafka、ZeroMQ等等。

下面結合平台建設中比較關心功能點,包括可靠性、可用性、擴展能力、實現語言(便於閱讀)、消費模型、消息類型、消息堆積能力、消息容錯機制、處理性能等方面對市場上主流的RocketMQ、RabbitMQ、Kafka三款產品進行比較,確定誰才更適合我們的業務需要。

 

功能

RocketMQ

Kafka

RabbitMQ

 

可靠性

同步刷盤、 異步刷盤

異步刷盤,丟數據概率高

同步刷盤

 

可用性

 
 

橫向擴展能力

支持

支持

集群擴容依賴前端

LVS 負載均衡調度

 

實現語言

Java

Scala和Java

Erlang

 

消費模型

Push / Pull

Pull

Push / Pull

 

定時消息

支持(只支持18個固定 Level)

不支持

支持

 

順序消息

支持

支持

不支持

 

消息堆積能力

百億級別(影響性能)

百億級別(影響性能)

百億級別(影響性能)

 

消息堆積查詢

支持

不支持

不支持

 

消息回溯

支持

不支持

不支持

 

消息重試

支持

不支持

支持

 

死信隊列

支持

不支持

支持

 

性能(常規)

非常好(十萬級 QPS)

非常好(百萬級 QPS)

一般(萬級 QPS)

 

性能(萬級 Topic 場景)

非常好(十萬級 QPS)

 

性能(海量消息堆積場景)

非常好(十萬級 QPS)

 

 

從以上的對比結果來看,Apache RocketMQ對於其他兩個優勢明顯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM