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对于其余两个优点明显。

相关文章
相关标签/搜索