jmeter发送kafka数据key错误且无法生成时间戳解决方案

Posted 好好先生&Mr.Li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter发送kafka数据key错误且无法生成时间戳解决方案相关的知识,希望对你有一定的参考价值。

前言:最近在做kafka、mq、redis、fink、kudu等在中间件性能压测,压测kafka的时候遇到了一个问题,我用jmeter往kafka发消息没有时间戳,同样的数据我用python发送就有时间戳,且jmeter会自动生成错误的变量key,那我是怎么解决的呢,容我细细道来!

一、jmeter怎么往kafka发送数据

jmeter往kafka发送数据我之前有写过博客,大家可以参考下,遇到我前言说的问题就可以参考本篇文章

二、jmeter生成错误key解决方案

我们用了kafka插件后jmeter中引入界面展示如下:

${PARAMETER_KAFKA_KEY}我们可以改为其他参数,这个是没有问题的,但是我项目kafka不需要key这个参数,当时我想填空值的,没想到填了空值后一运行jmeter后${PARAMETER_KAFKA_KEY}就自动填充进去了,导致发送到kafka的数据就多了一个错误的key

这个时候我们就需要找到kafka插件的jar包源码,修改一下源码重新生成jar包

只要把第156行的defaultParameters.addArgument(PARAMETER_KAFKA_KEY, "${PARAMETER_KAFKA_KEY}");修改为defaultParameters.addArgument(PARAMETER_KAFKA_KEY, null);就大功告成了

我用的编译器是常用的java神器之idea,这个工具打包jar包大家可以参考这篇文章

打包成功

将自己打的jar在jmeter的lib/ext目录下进行替换后发现界面展示默认就是空值了

发送的数据key也是显示正常的,kafka里面没有key信息展示了

三、jmeter生成kafka数据没有时间戳

上面的问题解决了,但是又发现一个新的问题,jmeter生成kafka数据没有时间戳,这可是不行的,毕竟我项目需要用到时间戳这个字段数据入库kudu

之前我用python脚本发送的数据是正常的,用jmeter就不正常了,我查阅了jmeter kafka jar包的相关资料,发现这插件一般都是和jmeter的后端监听器一起用的,是不是因为我没有引入这个jar包呢?我按着这个思路尝试了一下,把jmeter.backendlistener.kafka-1.0.1.jar包引入到了jmeter的lib/ext目录下,发现数据顿时正常了,大家需要这个jar可以去这里下载

四、开始愉快的压测之旅

以上是关于jmeter发送kafka数据key错误且无法生成时间戳解决方案的主要内容,如果未能解决你的问题,请参考以下文章

无法向 Kafka 集群生成 PubNub 数据流

Jmeter linux shell无法启动服务器

找不到 key.serializer 的类

spring整合kafka项目生产和消费测试结果记录

kafka生产者怎么样能够保障数据不丢,不重复且分区内数据有序!

Jmeter 5.4.3中的HTML报告生成错误[重复]