Frage

Ich versuche, einen grundlegenden Java-Consumer einzurichten, um Nachrichten von einem Kafka-Thema zu erhalten. Ich habe der Muster auf - https://cwiki.apache.org / Confluence / Display / Kafka / Consumer + Group + Beispiel - und diesen Code haben:

generasacodicetagpre.

und

generasacodicetagpre.

kafka läuft auf dem betreffenden EC2-Host, und ich kann Nachrichten zum Thema "Test" mit dem Kafka-console-producer.sh- und kafka-console-consumer.sh-Tools senden und empfangen. Der Port 2181 ist offen und erhältlich von der Maschine, in der der Verbraucher läuft (und so ist 9092 für ein gutes Maß, aber das schien auch nicht zu helfen).

Leider erhalte ich nie Nachrichten in meinem Verbraucher, wenn ich das renne. Weder vorhandene Nachrichten zum Thema, noch neu gesendete Nachrichten, die ich mit kafka-console-producer.sh senden, während der Verbraucher läuft.

Dies verwendet Kafka 0.8.1.1, läuft mit OpenJDK 1.7.0_65 auf CentOS 6.4 x64.

edit: fwiw, wenn das Verbraucherprogramm beginnt, sehe ich diesen Zookeeper-Ausgang:

generasacodicetagpre.

jede idee, was könnte mit diesem los sein? Jede und alle helfen sehr geschätzt.

War es hilfreich?

Lösung

das selbst für die Nachwelt beantwortet, falls jemand anderes über ein ähnliches Problem läuft.

Das Problem war folgendermaßen: Der Kafka-Broker und der Zookeeper waren auf einem EC2-Knoten, und der Verbraucher leitete auf meinem Laptop lokal.Bei der Verbindung mit Zookeeper ging der Kunde einen Verweis auf "IP-10-0-X-X. x-x.c2.internal", das (standardmäßig) nicht von außerhalb von EC2 aufgelöst wird.Dies wurde klar, wenn ich Log4j ordnungsgemäß auf dem Client richtig konfiguriert habe, sodass ich alle Protokollnachrichten erhalten habe.

Die Problemumgehung bestand darin, einfach einen Eintrag in meine / etc / hosts-Datei zu setzen, um den internen Hostnamen EC2 an die öffentlich routbare IP-Adresse zuzuordnen.

Andere Tipps

Sie können dieses Problem beheben, indem Sie die Einstellung nach Eigenschaft in der server.properties-Datei unter KAFKA CONFIG-Ordner befinden

Werbung.Host.Name= Public DNS von EC2-Server

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top