MQ消息中間件對比

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

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

 

功能異步

RocketMQ性能

Kafkaspa

RabbitMQ中間件

 

可靠性隊列

同步刷盤、 異步刷盤ci

異步刷盤,丟數據機率高同步

同步刷盤消息隊列

 

可用性

 
 

橫向擴展能力

支持

支持

集羣擴容依賴前端

LVS 負載均衡調度

 

實現語言

Java

Scala和Java

Erlang

 

消費模型

Push / Pull

Pull

Push / Pull

 

定時消息

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

不支持

支持

 

順序消息

支持

支持

不支持

 

消息堆積能力

百億級別(影響性能)

百億級別(影響性能)

百億級別(影響性能)

 

消息堆積查詢

支持

不支持

不支持

 

消息回溯

支持

不支持

不支持

 

消息重試

支持

不支持

支持

 

死信隊列

支持

不支持

支持

 

性能(常規)

很是好(十萬級 QPS)

很是好(百萬級 QPS)

通常(萬級 QPS)

 

性能(萬級 Topic 場景)

很是好(十萬級 QPS)

 

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

很是好(十萬級 QPS)

 

 

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

相關文章
相關標籤/搜索