Ich benutze KafkaProducer mit Java. Dies ist ein Beispiel für Code:So erkennen Sie Verbindungsfehler in Kafka
package com.mypackage.kafka.producer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;
public class ProducerToTest
{
public static void main(String[] args)
{
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
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");
KafkaProducer<String, String> producer = new KafkaProducer<String, String>(props);
for (int i = 0; i < 100; i++)
{
System.out.println(i);
producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i)));
}
producer.close();
}
}
Ich habe ein Problem. Wenn mein Kafka nicht läuft und ich meinen Code ausführe, stoppt er beim ersten Senden und wartet, bis Kafka wieder auf ist.
Wie kann ich Verbindungsfehler feststellen oder senden in einer Weise, die nicht alle Ausführung stoppen?
Ich versuche, 'props.put (" request.timeout.ms ", 10) hinzuzufügen;' aber _send_ bleiben blockiert. – Logocomune
@Logocomune welche Version verwenden Sie? –
Ich benutze kafka_2.10 Version 0.10.0.0. – Logocomune