消息队列 MQ 性能大揭秘

2024-11-23 21:52

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

  • 上一条:没有了
  • 下一条:Consumer
相关文章
热点文章
精彩视频
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量: