性能测试实战 30 讲
高楼
前 HP 高级性能专家,7DGroup 创始人
45941 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
性能测试实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

24丨Kafka:性能监控工具之队列级监控及常用计数器解析

采用二分法找数据
采用selector多线程模式
采用Linux Zero-Copy技术
使用Linux文件系统的Cache
消息的存储方式
三个Broker
思维方式
生产1000W消息
生产100W消息
生产10W消息
性能分析思路
性能优化点
Group Coordinator Settings
Zookeeper
Log Retention Policy
Log Flush Policy
Internal Topic Settings
Log Basics
Socket Server Settings
Kafka的高效原因
Kafka的基本结构
思考题
总结
示例
对组件的性能分析思路
构建Kafka的性能优化思维导图
配置文件
了解Kafka的基本知识
性能监控工具之队列级监控及常用计数器解析

该思维导图由 AI 生成,仅供参考

在我看来队列服务器是最简单的一种组件了。因为队列给我们下手的机会实在是并不多。我们只是用它,如果想改变它就只能去改代码,其他的都只是配置问题。
在当前的市场中,Kafka 算是用得非常火的一个队列服务器了,所以今天,我选择它来做一些解读。
虽然我在前面一直在强调分析的思路,但在这一篇中,我打算换个思路,不是像以前那样,直接给你一个结论型的思维导图,而是一起来分析一个组件,让我们看看从哪里下手,来观察一个被分析对象的相关配置。

了解 Kafka 的基本知识

我们先看一下这张图,以便更好地了解一个队列服务器。
这是 Kafka 官网上的一个图。从这个图中可以看到,对 Kafka 来说,这就像一个典型的集线器。那它里面的结构是什么样子的呢?根据我的理解,我画了一个如下的示意图:
在这个图中,有三个 Broker,也就是三个集群节点。每个消息有一个 leader partition,还有两个 follower partition。我没有画更多的 Producer 和 Consumer、Consumer Group,是觉得线太多了容易乱。
因为 Producer 和 Consumer 肯定会从 leader partition 中读写数据,而 Kafka 也保证了 leader 在不同 broker 上的均衡,所以 Kafka 的集群能力很好。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Kafka性能优化思路及测试结果 本文深入解析了Kafka的基本知识、数据存储方式以及性能优化思路。首先介绍了Kafka的基本结构和数据存储方式,然后详细解释了Kafka的高效原因,包括直接使用Linux文件系统的Cache、采用Linux Zero-Copy技术、采用selector多线程模式以及采用二分法找数据等。接着,文章展示了Kafka的配置文件,并提出了构建Kafka的性能优化思维导图,以及对组件的性能分析思路。通过生产100W和1000W消息的示例测试,展示了Kafka的性能表现,每秒有9.54MB的消息产生,平均响应时延在2.05ms至0.83ms之间,最大时延分别为482ms和532ms。总结了对未知组件的分析逻辑,以及如何通过基础知识进行性能优化方向整理和分析。最后留下思考题,引导读者思考如何分析一个未知组件以及Kafka的分析逻辑。整体而言,本文深入浅出地介绍了Kafka的基本知识和性能优化思路,对于想要了解Kafka性能监控工具的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能测试实战 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 夜空中最亮的星
    听了这节课 思路清晰了

    作者回复: 多谢支持。能理顺思路就是最重要的。

    2020-02-16
    3
  • GeekS
    老师,请教下,对于kafka队列这种客户端sdk与服务器对接的应用,用kafka自带性能脚本kafka-producer-perf-test.sh只能做基准性能测试,但是对于多种业务混合场景下的性能测试,有推荐的性能工具吗

    作者回复: 也可以用jmeter做呀。有插件。

    2020-07-01
    1
  • Duke
    授人以鱼不如授人以渔!感谢老师,真的受益匪浅

    作者回复: 多谢支持。

    2020-02-28
    1
  • 董飞
    老师,请教下jmeter测性能时,聚合报告中有一个错误率,具体怎样的请求会被统计成错误?

    作者回复: 默认情况下,http的标准错误就会统计进去。

    2020-02-16
    2
    1
  • Geek_7869f6
    老师,消息中间件性能测试过程中建议开持久化不? 另外,可以出一期redis性能优化不。

    作者回复: 持久化开不开,取决于业务需求。这个不是技术能决定的。 这个专栏已更新完,不会再出新内容。redis可优化的不多,查查资料应该也可以搞定。

    2021-04-22
  • 修继伟
    老师 线程日志里出现大量的 waiting on condition 这个程序会有问题吗

    作者回复: 那就得把栈发给我看看了。这样描述过于平面了。

    2020-12-31
  • 雄鹰
    正好项目组要测试kafka的基准测试,派上用场了,感谢老师o(^o^)o

    作者回复: 感谢支持。

    2020-10-27
  • t6666
    感觉自己还有很多需要学习,如果是我拿到未知组件应该先去看他的文档然后理清楚运行逻辑然后再分析吧,后面那个,我觉得我还是滚去看书了

    作者回复: 未知组件,肯定是要先学习它的架构原理和使用,然后再分析的。

    2020-05-02
  • 月亮和六便士
    老师打开kafka-exporter 一堆的计数器,怎么确定哪个重要,哪个不重要

    作者回复: 没有重要不重要。取决于问题在哪。

    2020-04-25
  • 亚林
    还得靠大量的实战经验积累
    2024-03-15归属地:湖南
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部