2016-06-29 3 views
4

Ich versuche Nachrichten mit dem Kafka-Konsolenproduzenten an einen Kafka-Broker zu senden, der auf demselben Rechner läuft. Als ichkafka-console-producer.sh TimeOutException

echo "Hello world" | ./kafka-console-producer.sh --broker-list localhost:9092 --topic test 

laufen erhalte ich folgende Fehlermeldung:

[2016-06-29 15:00:44,069] ERROR Error when sending message to topic test with key: null, value: 11 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) 
org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) expired due to timeout while requesting metadata from brokers for test-0 

Wenn ich überprüfen, ob der Kafka-Broker auf Port 9092 lauscht, es dort ist und läuft. Wie kann ich debuggen, warum kann der Command Line Producer keine Verbindung zum Broker herstellen? Vielen Dank!

+0

Aktualisierung der Logger Ebene von WARN in 'config/tools-log4j.properties' zurückzuverfolgen und den Befehl ausführen. Wenn Sie nicht in der Lage sind zu debuggen, dann fügen Sie hier ein. –

+0

Funktioniert ZK korrekt? –

Antwort

1

Ich hatte das gleiche Problem und es scheint, als ob Kafka falsche Metadaten an den Tierpfleger geschrieben hätte.

Der einfachste Weg, dies zu erreichen, ist, den Znode zu entfernen, in dem Brokerdaten registriert werden. Das heißt, wenn Sie die Standardeinstellungen verwenden, sollte der Name ‚/ Makler‘ und der Befehl:

$ zkCli.sh 
... 
[zk: localhost:2181(CONNECTED) 1] rmr /brokers