2016-07-11 10 views
2

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?

Antwort

0

Der Hersteller wird versuchen, die Verbindung wiederherzustellen, bis request.timeout.ms. Es wird nicht unbegrenzt auf Makler warten. Bitte beachten Sie die folgenden Detailinformationen für request.timeout.ms.

Die Konfiguration steuert die maximale Zeit, die der Client auf die Antwort einer Anfrage wartet. Wenn die Antwort nicht vor Ablauf des Zeitlimits empfangen wird, sendet der Client die Anforderung ggf. erneut oder schlägt die Anforderung fehl, wenn die Wiederholungen erschöpft sind.

+0

Ich versuche, 'props.put (" request.timeout.ms ", 10) hinzuzufügen;' aber _send_ bleiben blockiert. – Logocomune

+0

@Logocomune welche Version verwenden Sie? –

+0

Ich benutze kafka_2.10 Version 0.10.0.0. – Logocomune