Ich bin neu in Kafka 0.9 und testen einige Funktionen, die ich ein seltsames Verhalten in der Java-implementiert Consumer (KafkaConsumer
) realisiert.Kafka Consumer Poll() -Methode wird blockiert
Der Kafka-Broker befindet sich in einem externen Gerät Ambari.
Auch wenn ich einen Producer implementieren und Nachrichten an den externen Broker senden könnte, habe ich keine Ahnung, warum, wenn der Verbraucher versucht, die Ereignisse (Umfrage) zu lesen, bleibt er stecken.
Ich weiß, dass der Produzent gut funktioniert, da ich Nachrichten über den Konsolenverbraucher konsumieren kann (der lokal auf ambari arbeitet). Aber wenn ich den Java Consumer ausführe, passiert nichts, bleibt einfach hängen. Debuggen der Code, den ich konnte sehen, dass es an der poll()
Linie blockiert wird:
ConsumerRecords<String, String> records = consumer.poll(100);
Der Timeout nichts tut, nebenbei bemerkt. Es spielt keine Rolle, ob Sie 0, 100 oder 1000 ms setzen, der Verbraucher wird in dieser Zeile blockiert und gibt keine Zeitüberschreitungen oder Ausnahmen aus.
habe ich versucht, alle Arten von alternativen Eigenschaften, wie advertised.host.name, advertised.listener, ... und so weiter, mit Null Glück.
Jede Hilfe würde sehr geschätzt werden. Danke im Voraus!
Können Sie die Nachrichten auf andere Weise verwenden, z. B. mit 'kafka-console-consumer.sh'? –
Ja, ich bin. Von der Maschine, die den Ambari hostet, kann ich Nachrichten über den Konsolenverbraucher konsumieren. –
Und was ist mit der Maschine, auf der Sie Ihren Kunden betreiben? Hast du den Konsolenverbraucher dort getestet? –