消息队列 MQ 性能大揭秘

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

我是栈江湖,如果你喜欢此文章,不要忘记关注+点赞哦!你的支持是我创作的动力。如果你有任何意见或建议,欢迎在下方留言。若转载,请注明文章来源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值