簡體   English   中英

如何使用 JMeter 將 avro 消息發布到 kafka 主題

[英]How to publish avro message to a kafka topic using JMeter

我正在嘗試使用 JMeter 將 Avro 消息發布到 Kafka 主題。

我收到以下錯誤消息:

引起:javax.script.ScriptException: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema"string"

我使用以下代碼使用 JSR223 采樣器。

KAFKA_BROKERS、KAFKA_TOPIC 和 MESSAGE 在用戶定義的變量中傳遞。

import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

String brokers = vars.get("KAFKA_BROKERS");
String topic = vars.get("KAFKA_TOPIC");
String user = String.valueOf(ctx.getThreadNum() + 1);
Object msg = vars.get("MESSAGE");

Properties kafkaProps = new Properties();

kafkaProps.put("bootstrap.servers", brokers);
kafkaProps.put("schema.registry.url","https://\<\>");
kafkaProps.put("auto.register.schemas","false");
kafkaProps.put("basic.auth.credentials.source","USER_INFO");
kafkaProps.put("basic.auth.user.info","\<\>");
kafkaProps.put("security.protocol","SASL_SSL");
kafkaProps.put("sasl.mechanism","PLAIN");
kafkaProps.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
kafkaProps.put("value.serializer","io.confluent.kafka.serializers.KafkaAvroSerializer");
kafkaProps.put("sasl.jaas.config","org.apache.kafka.common.security.plain.PlainLoginModule required username='\<\>' password='\<\>';");

Producer\<String, Object\> producer = new KafkaProducer\<\>(kafkaProps);
try
{
producer.send(new ProducerRecord\<String, Object\>(topic, user, msg)).get();
}
finally
{
producer.close();
}

收到以下錯誤消息:

引起:javax.script.ScriptException: org.apache.kafka.common.errors.SerializationException: Error retrieving Avro schema"string"

您需要配置kafkaProps object ,就像在您試圖模仿的上游系統中所做的一樣。

作為一種解決方法,您可以啟用自動架構注冊,例如:

kafkaProps.put("auto.register.schemas","true");

更多信息:如何使用 JMeter 進行 Kafka 測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM