负载测试kafka消费者

2024-03-31

(我正在编辑问题,因为我认为它不够清楚)

如何对我的 kafka 消费者进行负载测试? 我看过很多关于 apache kafka 负载测试的文章,但没有一篇关于消费者负载测试的文章。 对于前。我在jsr223中编写了jmeter kafka生产者测试计划,将事件发送到kafka主题。 我的kafka spring boot消费者监听这个主题,消费事件并开始处理它。 Jmeter 只向我显示有关该主题的生产者的报告,仅此而已。 有没有更好的方法来加载测试 spring boot kafka 消费者应用程序并获取报告? 从消耗时间到进程结束?


我相信kafka-consumer-perf-test.sh脚本与每个 Kafka 安装一起使用,它应该足以满足您的用例,请参阅性能测试 Kafka Wiki 页面 https://cwiki.apache.org/confluence/display/KAFKA/Performance+testing更多细节。

该脚本可以使用 JMeter 集成操作系统进程采样器 https://jmeter.apache.org/usermanual/component_reference.html#OS_Process_Sampler


如果您正在谈论使用 JMeter 读取来自损坏的消息 - 任何人都可以完成JSR223测试元件 https://jmeter.apache.org/usermanual/best-practices.html#jsr223

  1. Obtain 卡夫卡Java客户端 https://docs.confluent.io/clients-kafka-java/current/overview.html

  2. 将库和依赖项放入JMeter 类路径 https://jmeter.apache.org/usermanual/get-started.html#classpath

  3. 重新启动 JMeter 以获取库

  4. 将实现从 Kafka 主题读取消息的代码放入 JSR223 Sampler,示例片段:

    props.put('bootstrap.servers', '192.168.99.100:9092')
    props.put('group.id', 'foo')
    props.put('enable.auto.commit', 'true')
    props.put('auto.commit.interval.ms', '1000')
    props.put('session.timeout.ms', '30000')
    props.put('key.deserializer',
            'org.apache.kafka.common.serialization.StringDeserializer')
    props.put('value.deserializer',
            'org.apache.kafka.common.serialization.StringDeserializer')
    def consumer = new org.apache.kafka.clients.consumer.KafkaConsumer<String, String>(props)
    def topic = 'sometopic'
    
    consumer.subscribe(Arrays.asList(topic))
    log.info('Subscribed to topic ' + topic)
    
    while (true) {
        def records = consumer.poll(100)
        records.each { record ->
            log.info('Received message: ' + record.value())
        }
    }
    

更多信息:

  • Apache Kafka - 如何使用 JMeter 进行负载测试 https://www.blazemeter.com/blog/apache-kafka-how-to-load-test-with-jmeter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

负载测试kafka消费者 的相关文章

随机推荐

  • Nginx 反向代理配置

    我在使用 nginx 进行简单配置时遇到问题 我有一台托管 docker 容器的服务器 因此 nginx 位于容器中 所以我们调用 urlfoo com 我想要网址foo com service1实际上只是去另一个端口上的 foo com
  • CSS 中如何使用“大于”或“>”字符?

    我在 CSS 文件中多次看到这个字符 但我不知道它是如何使用的 谁能向我解释一下并展示它们如何使页面样式变得更容易 这是一个 CSS 子选择器 P gt SPAN表示将以下样式应用于作为子级的所有 SPAN 标记P tag 请注意 孩子 的
  • Visual Studio Code 中是否有像 DocBlockr 这样的代码注释功能?

    我使用 Sublime Text 3 Atom io 和 Bracket io 作为以前的编辑器 我也非常喜欢新的 Mac 版 Visual Studio 代码编辑器 Sublime 有类似 DocBlockr 的代码注释功能吗 这对我来说
  • Android Studio 0.5.9错误代码42

    每次我尝试从 eclipse 导入项目时 我都会收到这样的错误 Error Execution failed for task app mergeDebugResources 错误 无法运行命令 D Android sdk build to
  • 如何优化间接基数排序? (又名如何优化不可预测的内存访问模式)

    我用 C 编写了一个间接基数排序算法 间接 我的意思是它返回项目的索引 include
  • Kubernetes TLS 秘密证书过期

    我使用 openssl 创建通配符自签名证书 我将证书有效期设置为 到十年 我通过使用 openssl 检查证书来仔细检查有效期 我使用步骤 1 中准备的私钥和证书创建一个 Kubernetes 密钥 如下所示kubectl命令 kubec
  • 如何从ocaml列表中获取子列表

    我正在查看列表文档 图书馆好像没有提供sublist功能 我正在尝试从中获取元素列表i to j 现在我必须把它写成 let rec sublist list i j if i gt j then else List nth list i
  • 如何解析会导致非法 C# 标识符的 JSON 字符串?

    我一直在使用NewtonSoft JSON 转换 http james newtonking com json用于解析 JSON 字符串并将其转换为 C 对象的库 但现在我遇到了一个非常尴尬的 JSON 字符串 我无法将其转换为 C 对象
  • JavaMail 与 Oauth 和 Office365

    我正在用 Java 构建一个简单的命令行应用程序 它可以登录我的电子邮件箱 IMAP 并下载所有附件 我使用了基本身份验证 但 Microsoft 正在禁用它 因此我尝试将我的应用程序转换为使用 OAuth 在阅读了不同的 OAuth 流程
  • 部署时出现 aws beanstalk 403 错误

    您好 我正在使用亚马逊网络服务弹性豆茎 每次我使用 git aws push 时 我的 php 应用程序都会成功上传但是 当我单击 url 时 它会显示 Forbidden You don t have permission to acce
  • 自旋锁与忙等待[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 请解释原因忙碌等待通常不受欢迎 而Spinning通常被认为还可以 据我所知 它们都会无限循环 直到满足某些条件 A 自旋锁通常在资源争用较少时
  • 使用Mysql lower_case_table_names为1

    我已经使用 yum 在 linux 中安装了 mysql v5 5 17 现在我想要默认的小写表名 所以我添加了 set variable lower case table names 1 in etc my cnf 但如果我这样做 我就无
  • 获取安装目录安装盾

    我想通过安装盾来创建我的设置 我使用命令参数Setup exe path SETUPEXEDIR log txt我的设置位置是Desktop myapp Setup exe使用 SETUPEXEDIR 时返回临时文件夹 我希望在使用 SET
  • 为什么我不能让单个 Redis 客户端在同一连接中充当 PUB 和 Sub ?

    我的思维模型是 聊天 我订阅了某个频道 并且可以向该频道发布消息 由于 pub sub 是异步的 因此发布的消息可能随时出现 包括当您期望命令响应时 尽管 Redis 是单线程的 通常会阻止此类事情 但网络延迟可能会导致一些有趣的影响 根据
  • 如何修复“属性没有初始值设定项并且未在构造函数中明确分配”错误?

    我对这些课程有疑问 我想使用该方法doSomething 班级独有B无需每次都进行类型转换 但是当我指定属性时a属于类型B 它告诉我它没有在构造函数中分配 这有点错误 因为父构造函数进行了分配 class A class B extends
  • 在 Android 模拟器上安装 Flash Player

    我想知道在android模拟器上安装flash播放器的过程 请详细 我需要执行此操作来测试应用程序 但目前我没有任何物理设备 我已经尝试过的事情 1 我已经检查了有关此主题的所有堆栈溢出链接 2 我已经知道adobe已经停止了android
  • 如何实现 STL 风格的迭代器并避免常见的陷阱?

    我创建了一个集合 我想为其提供一个 STL 风格的随机访问迭代器 我正在寻找迭代器的示例实现 但没有找到 我知道需要 const 重载 and 运营商 迭代器 STL 风格 的要求是什么 还有哪些其他需要避免的陷阱 如果有 附加上下文 这是
  • 背景图像未完全拉伸

    前几天我刚刚启动了一个网站 并认为它没有奇怪的 CSS 错误 但显然事实并非如此 我在这里尝试做的是拉伸图像以适应页面的高度和宽度 问题 我有以下标记 img src images night sky7 jpg class stretch
  • Debian 的简单初始化脚本中出现“;;意外”语法错误

    我有这个初始化脚本来运行 uwsgi 它有效 但仅限于启动命令 所有其他命令都会给我这个错误 etc init d uwsgi 27 etc init d uwsgi Syntax error unexpected 我正在阅读的教程中似乎应
  • 负载测试kafka消费者

    我正在编辑问题 因为我认为它不够清楚 如何对我的 kafka 消费者进行负载测试 我看过很多关于 apache kafka 负载测试的文章 但没有一篇关于消费者负载测试的文章 对于前 我在jsr223中编写了jmeter kafka生产者测