前言:最近在做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可以去这里下载
四、开始愉快的压测之旅
|