简介:
一般用jmeter 压测kafka,网上大部分都会选择使用pepper-box 插件。但这个插件有个问题,就是kafka版本的问题,你要下载pepper-box 自己修改生成jar,但这个生成jar过程中,经常出现构建失败的问题,如果对java不是很了解,这个调试就非常耗时(当然最终是调试成功了,支持kafka 2.3,pepper-box下载地址)。所以干脆直接使用JSR232 来写kafka producer
kafka 安装:
参考改文章,写的很详细
https://blog.csdn.net/shan286/article/details/105216381/
kafka producer JSR232 demo
import java.util.Properties;
import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;
import java.io.FileOutputStream;
import java.io.PrintStream;
Properties props = new Properties();
props.put("bootstrap.servers","192.168.240.110:31246");
props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");
// user_request 用户自定义变量
def user_request = vars.get("kafkaMsg")
Producer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<String, String>("sun1", user_request));
producer.close();
其中user_request 你可以在jemeter 任何自定义变量中设置。如
验证数据是否发送成功:可以在你安装后的kafka中 opt/kafka/bin目录下敲一下命令:
./kafka-console-consumer.sh --bootstrap-server 192.168.240.110:31246 --topic sun1 --from-beginning
kafka consumerJSR232 demo
上面的链接有参考文档
更详细的kafka producer JSR232 可以参考以下链接:
https://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html
https://github.com/felixzh2020/felixzh-jmeter-kafka/blob/master/src/main/java/com/felixzh/JMeterProducer.java