测试环境(203):
Model: Dell Vostro 3800
CPU: Intel(R) Core(TM) i3-4170 CPU @
3.70GHz
RAM: 16 Gb
OS: CentOS 7.3.1611 x86_64
模式
持久化
事务
集群
负载均衡
堆积能力
消息丢失
消息重复
RabbitMQ
发布订阅
支持(内存/硬盘)
支持
支持
支持
磁盘容量+内存
不会丢失
可以使用消息确认等机制控制
消息失败重试机制
消费失败支持定时重试
客户端支持语言
最大吞吐量时cpu、内
存占用
Producer吞吐量
Consumer吞吐量
Java、C、C++、Python、 PHP、Perl
等
cpu占用非常高,内存占用根据配置
(配置的太低对性能影响很大)
1.8w/s(4个broker),消费者消费对其吞
吐量影响很大
6千/s(3个消费者),峰值数据非常容
易积压,一旦积压消费速度有很大影响,
消费者增加速度成倍下降
RocketMQ
发布订阅
支持(磁盘)
支持
支持
支持
磁盘容量
kafka
发布订阅
支持(磁盘)
不支持
支持
支持
磁盘容量(水平扩展,不同broker可以存储在不
同磁盘上)
理论上不会丢失
-
消费失败支持定时重试,每次
重试间隔时间顺延
Java、C++(不成熟)
理论上不会丢失
理论上会有重复
Kafka消费失败不支持重试
Java、C++等
-
-
-
cpu占用不高,每个broker大概10%,内存1G左
右
13w/s(4个broker,11个分区),消费者消费对其
吞吐量影响很小
2.7w/s(3个消费者,11个分区),能累积很多
数据,累积不会对消费速度有影响,增加消费者
对消费速度的影响没有rabbitmq那么大。