消息队列 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/873607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C/C++】“秒懂”学C/C++不可错过的“经典编程题” — 日期类的经典运用 (含题链接)

“秒懂”学C/C不可错过的“经典编程题” — 日期类的经典运用 (含题链接) 1. 计算日期到天数转换(1). 解题思路:(2). 代码实现: 2. 打印日期(1). 解题思路:(2). 代码实现: 3. 日期累加(1). 解题思路:(2). 代…

欧拉下搭建第三方软件仓库—docker

1.创建新的文件内容 切换目录到etc底下的yum.repos.d目录,创建docker-ce.repo文件 [rootlocalhost yum.repos.d]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vim docker-ce.repo 编辑文件,使用阿里源镜像源,镜像源在编辑中需要单独复制 h…

LabVIEW重构其他语言开发的旧系统

在面对一个运行已久、代码不清晰的项目时,如果该项目涉及复杂的通讯协议(如串口和488通讯),重新开发并优化成LabVIEW版本可以极大提升系统的易用性和维护性。为了确保通讯协议的顺利解析和移植,借助专业工具分析现有通…

LLM指令微调实践与分析

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

为elementui的el-date-picker时间选择器添加快捷选项

1、效果图 2、实现方法 直接在elementui的时间选择器上修改,添加shorcuts选项,但是样式要自己修改。 有几个注意点: 1)如图我是选中后有显示背景颜色的,也就意味着要给选中的选项添加类名,elementui没有…

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存

如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线…

2024国赛数学建模C题完整论文:农作物的种植策略

农作物种植策略优化的数学建模研究(完整论文,持续更新,大家持续关注,更新见文末名片 ) 摘要 在本文中,建立了基于整数规划、动态规划、马尔科夫决策过程、不确定性建模、多目标优化、相关性分析、蒙特卡洛…

数据库MySQL零基础-下【详细】

目录 六、事务/视图/触发器/存储过程 1、事务的理解 (1)事务的理解 (2)事务的特性 2、事务的应用 (1)事务的开启与提交 # 语法 # 示例 (2)开启autocommit(临时生…

01* 到底是不是太胖了?

题目&#xff1a; 代码&#xff1a; #include <iostream> using namespace std;#include<stdlib.h> #include<stdio.h>int main() {int n;scanf("%d",&n);for(int i0;i<n;i){int H;scanf("%d",&H);float W;scanf("%f&q…

【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德

原文链接&#xff1a;【信创】Linux终端禁用USB存储 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux终端下禁用USB存储设备的文章。禁用USB存储设备可以提高系统的安全性&#xff0c;防止未经授权的人员将数据拷贝到外部存储设备或…

基于微信小程序+Java+SSM+Vue+MySQL的点餐平台系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSSMVueMySQL的点餐平台系统【附源码文档…

嵌入式-----汇编语言

一.ARM汇编语言程序格式 ARM汇编语言是以段(section)为单位来组织源文件的。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。 段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代码运行时需要用到的数据。一个ARM源程序至少需要一个代码段,大的程序…

macos 系统文件操作时提示 Operation not permitted 异常解决方法 , 通过恢复模式 开启 /关闭 SIP方法

在macos系统中操作系统文件时提示 Operation not permitted 这个异常, 原因是因为在macos 10.11以上版本中默认启用了 SIP( System Integrity Protection )机制对系统文件进行保护, 要解决这个问题我们需要关机, 然后进入mac的恢复模式 : 在按电源键开机的同时, 一直按住 co…

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目&#xff1a; 题解&#xff1a; class Solution { public:static const int MASK1 1 << 7;static const int MASK2 (1 << 7) (1 << 6);bool isValid(int num) {return (num & MASK2) MASK1;}int getBytes(int num) {if ((num & MASK1) 0) …

哈希表如何避免冲突

系列文章&#xff1a; 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 3. 哈希表如何避免冲突 目录 1.概念 2. 冲突-概念 3. 冲突-避免 3.1 冲突-避免-哈希函数设计 3.2 冲突-避免-负载因子调节 4. 冲突-解决 4.1 冲突-解决-闭散列 4.1.1 线性探…

RMAN Backup Job is Completed Netbackup NBU

RMAN Backup Job is Completed But RMAN Sessions are Not Released in Database When Using Netbackup (Doc ID 2903139.1)​编辑To Bottom In this Document Symptoms Changes Cause Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 19.8.0.0.0 and …

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

YOLOv8+Deepsort+PyQt+GUI 语义分割+目标检测+姿态识别 三者合一(集成于一套系统)综合视觉分析系统

综合视觉分析系统 技术栈&#xff1a; YOLOv8&#xff1a;用于目标检测&#xff0c;是一个快速且准确的目标检测框架。DeepSORT&#xff1a;用于目标跟踪&#xff0c;结合了深度学习特征提取和卡尔曼滤波器来预测目标轨迹。GUI&#xff1a;提供一个直观易用的图形用户界面&am…

云计算和传统IT相比,有哪些优势?

云计算相比于传统的IT基础设施&#xff0c;具有以下一些显著的优势&#xff1a; 成本效益&#xff1a; 云计算通常采用按需付费模式&#xff0c;用户只需为实际使用的资源支付费用&#xff0c;避免了高昂的前期硬件投资和维护成本。 弹性计费方式使得企业可以根据业务需求灵活调…

汽车免拆诊断案例 | 捷豹 E-type怠速不稳定

故障现象 一辆3.8E型直列6缸的捷豹&#xff0c;该车的故障原因表现为怠速不稳定&#xff0c;转速不均匀&#xff0c;以及在节气门全开&#xff08;WOT工况&#xff09;时“回火”和加速踏板不能及时提速。这是该车型一个值得关注的典型案例。车主表示&#xff0c;几年前&#…