RabbitMQ
以下是rabbitmq官方针对RabbitMQ 3.12的性能测试报告,从报告中可以看到他测试的吞吐量是保持在万级的,延迟时间平均在25毫秒左右,最小延时可以达到微秒级。
另外图中还可以看到在低吞吐量的情况下rabbitmq的延迟速度非常的快,在高吞吐量情况下rabbitmq的延迟速度相对的上升梯度非常明显。
在另一份confluent.io的测试报告中也有类似的结论,以下是confluent.io的测试报告
图片与表格来源于confluent.io
RabbitMQ延迟在吞吐量高于30 MB/s时会显著降低。
小结
结合网上很多文章的相同结果:
吞吐量:万级
延迟(低吞吐量):毫秒级,可低至微秒级
RocketMQ
RocketMQ我在网上并没有找到比较可靠的性能测试报告,在官方有提到“Trillion-level throughput guarantee”万亿级吞吐保证。当然主要强调rocketmq可以达到万亿级别的数据处理需求。
在阿里云可以看到可以购买到100万/秒 TPS的产品
小结
结合网上很多文章的相同结果:
吞吐量:百万级
延迟:毫秒级
Kafka
使用机器集群以网络有限的吞吐量传递消息,延迟低至2ms。
kafka官网的性能页面有个性能测试的blog链接
这个blog是对 Apache Kafka 进行基准测试:每秒 200 万次写入
另一个网站confluent.io的测试结果
小结
结合网上很多文章的相同结果:
吞吐量:百万级
延迟:毫秒级,可低至2ms
Pulsar
Apache Pulsar是一个一体化的消息和流媒体平台。消息可以单独使用和确认,也可以作为延迟小于10 ms的流使用。其分层架构允许在数百个节点间快速扩展,而无需重新调整数据。
小结
结合网上很多文章的相同结果:
吞吐量:百万级
延迟:毫秒级,可低至10ms
总结
当然以上数据基于的硬件环境不一样,测试的数据也不一样,只能当成个大概的参考。在confluent.io的数据是基于相同的数据与环境的测试结果。另外以上的测试的结果并不能代表MQ的极限,因为机器配置与机器数量也不是足够的。
- 延迟
rabbitmq、kafka、pulsar、rocketmq延迟均能达到毫秒级,在不同的吞吐量他们的延迟还是有所区别。
在低吞吐量的情况下,消息队列系统的延迟时间会受到多种因素的影响,包括系统架构、消息大小、网络延迟等。延迟时间从快到慢的一般排名:
rabbitmq->kafka->pulsar->rocketmq
而在高吞吐量的情况下,不同的消息队列系统的延迟时间会受到它们设计和优化的影响。延迟时间从快到慢的一般排名:
kafka->pulsar->rocketmq->rabbitmq
如果业务量并不大,对消息的速度与可靠性(几款MQ均能保证消息不丢失,不过或多或少要开启一些配置,rabbitmq默认配置的可靠性已非常高)要求高可以优先选择rabbitmq。
- 吞吐量
rabbitmq、kafka、pulsar、rocketmq吞吐量,rabbitmq较低是万级,kafka、pulsar、rocketmq均是百万级。吞吐量比高到低的排名:
kafka->pulsar->rocketmq->rabbitmq
我是栈江湖,如果你喜欢此文章,不要忘记关注+点赞哦!你的支持是我创作的动力。如果你有任何意见或建议,欢迎在下方留言。若转载,请注明文章来源。