У меня есть код, который будет отправлять данные в тему Кафки.
public void sendMessage(String message, String key){
if (isAsync) { // Send asynchronously
producer.send(new ProducerRecord<String, String>(topic,key,message), new ProducerCallback(key, message));
} else { // Send synchronously
try {
producer.send(new ProducerRecord(topic,key, message)).get();
} catch (Exception e) {
e.printStackTrace();
// handle the exception
}
}
}
Я передаю данные методу, используя следующий код:
String Message ="Text message,Text message,Text message,Text message,Text message,Text message,Text message,Text message,Text message,Text message";
String Key = "0123456789";
for(int i =0; i < 10000; i++)
{
publish.sendMessage(Message, Key);
}
Поскольку сообщение и ключ статичны, код отправляет данные в Kafka с низкой задержкой (менее 1 секунды для записей 10K), но если у меня будет динамический ключ, производительность замедляется (почти 55 секунд для записей 10K) , Код будет
for(int i =0; i < 10000; i++)
{
publish.sendMessage(Message, Key+i);
}