当前位置: 首页 > news >正文

kafka消费能力压测:使用官方工具

背景

在之前的业务场景中,我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试,测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。

我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部署时的某些未知配置所导致。

为了进一步确定问题的根源,我们决定对Kafka的消费能力进行压力测试。

在这篇《kafka的Docker镜像使用说明:wurstmeister/kafka》文章中我们介绍了基于Docker安装并运行kafka的步骤。

这篇文章中我们重点看一下压测的情况。

压测

kafka消费者压测。

测试命令

kafka-consumer-perf-test.sh --broker-list 172.26.224.165:30001 --topic dreame_mall_log_uat_business --fetch-size 10000 -messages 100000 --threads 1

参数解释

  • broker-list:部署的kafka节点地址。我这里测试的是部署在服务器上的kafka消费性能。
  • topic:指定topic名称
  • fetch-size:指定每个fetch的数据大小,单位字节。
  • messages:总共要消费的消息个数

使用方法

进入容器中,进入命令行工具,到bin目录下,输入上述测试命令。

结果

start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec
2025-02-18 03:52:57:888, 2025-02-18 03:59:35:970, 1732.0945, 4.3511, 100008, 251.2246

输出参数含义 

start.time:开始时间

end.time:结束时间

data.consumed.in.MB:共消费数据,单位MB。如,我们上述的结果,1732.0945MB。        

MB.sec:吞吐量,每秒多少MB。如,我们上述的结果,4.3511MB/s。

data.consumed.in.nMsg:共消费数据。如,我们上述的结果,100008条。

nMsg.sec:平均每秒消费多少条。如,我们上述的结果,251.2246条/s。

结论

通过压测工具的数据和我之前通过kakfa-go组件测试的情况看,kafka消费性能比预期差了很多的原因并不是由kafka-go这个组件导致的,应该是网络带宽限制造成的。  

进一步测试,我本地从WIFI切换到有线网络,消费能力提升了一倍,确定了是我本地计算机网络带宽限制造成的。

http://www.lryc.cn/news/539222.html

相关文章:

  • 基于Spring Boot的社区居民健康管理平台的设计与实现
  • 网络安全架构战略 网络安全体系结构
  • 【Spring+MyBatis】_图书管理系统(中篇)
  • Python - 爬虫利器 - BeautifulSoup4常用 API
  • 宝塔面板开始ssl后,使用域名访问不了后台管理
  • 大一计算机的自学总结:前缀树(字典树、Trie树)
  • docker 安装的open-webui链接ollama出现网络错误
  • 未来游戏:当人工智能重构虚拟世界的底层逻辑
  • Redis集群主从切换源码解读
  • javacv将mp4视频切分为m3u8视频并播放
  • Golang学习笔记_33——桥接模式
  • 蜂鸟视图发布AI智能导购产品:用生成式AI重构空间服务新范式
  • AI服务器散热黑科技:让芯片“冷静”提速
  • 数据结构-栈、队列、哈希表
  • 安装海康威视相机SDK后,catkin_make其他项目时,出现“libusb_set_option”错误的解决方法
  • 【鸿蒙】ArkUI-X跨平台问题集锦
  • 大模型驱动的业务自动化
  • ocr智能票据识别系统|自动化票据识别集成方案
  • [数据结构]红黑树,详细图解插入
  • 【机器学习】超参数调优指南:交叉验证,网格搜索,混淆矩阵——基于鸢尾花与数字识别案例的深度解析
  • Burp Suite基本使用(web安全)
  • React实现自定义图表(线状+柱状)
  • 从低清到4K的魔法:FlashVideo突破高分辨率视频生成计算瓶颈(港大港中文字节)
  • Qt的QTabWidget的使用
  • Next.js【详解】获取数据(访问接口)
  • 反向代理模块kd
  • leaflet前端初始化项目
  • CMS DTcms 靶场(弱口令、文件上传、tasklist提权、开启远程桌面3389、gotohttp远程登录控制)
  • Docker 入门与实战:从安装到容器管理的完整指南
  • git删除本地分支