DI-kafkaMeter 发送消息错误

问题描述 投票:0回答:2

我使用jmeter DI-kafkaMeter向kafka发送消息

向 kafka 主题发送消息时出错:java.lang.RuntimeException:未找到 Kafka Producer Client。检查 KafkaProducerSampler 中的变量名称。

信息 o.a.k.c.p.KafkaProducer:[Producer clientId=JMeter-Producer-1] 以 timeoutMillis = 0 ms 关闭 Kafka 生产者。 2023-02-24 16:17:12,544 错误 c.d.j.k.c.KafkaProducerConfig:建立 Kafka 生产者客户端时出错!!

o.a.j.s.SampleResult 错误:必须在 setStartTime 之后调用 setEndTime java.lang.Throwable:无效的调用序列

向 kafka 主题发送消息时出错:java.lang.RuntimeException:未找到 Kafka Producer Client。检查 KafkaProducerSampler 中的变量名称。

信息 o.a.k.c.p.KafkaProducer:[Producer clientId=JMeter-Producer-1] 以 timeoutMillis = 0 ms 关闭 Kafka 生产者。 2023-02-24 16:17:12,544 错误 c.d.j.k.c.KafkaProducerConfig:建立 Kafka 生产者客户端时出错!!

o.a.j.s.SampleResult 错误:必须在 setStartTime 之后调用 setEndTime java.lang.Throwable:无效的调用序列

apache-kafka jmeter jmeter-plugins
2个回答
0
投票

该错误表明 Sampler.sample() 函数在“DI-kafkaMeter”(无论它是什么)中未正确实现,并且您无能为力,除非修复源代码中的错误,重新编译插件并将固定版本放入JMeter Classpath

与此同时,您可以考虑使用另一个插件,即 Pepper-Box - Kafka Load Generator 或仅将 Kafka Java 客户端库 添加到 JMeter 的“lib”文件夹并使用 JSR223 Sampler 发送消息。

示例代码可以在这里

找到

在 JSR223 Sampler 中使用的简化版本:

def props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

def producer = new org.apache.kafka.clients.producer.KafkaProducer<>(props);

producer.send(new org.apache.kafka.clients.producer.ProducerRecord<>("your-topic", "your-key", "your-encrypted-value"));

producer.close(); 

更多信息:如何使用 JMeter 进行 Kafka 测试


0
投票

要向

Kafka
发送消息,您需要创建
Producer
客户端。为此,您需要通过
Config Element
创建一个
JMeter

创建 Kafka Producer 配置后,您可以再次运行测试。

我知道这是一个迟到的答案,但我希望它可以帮助那些有类似问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.