2016-03-26 10 views
0

Ich habe einen Cluster (Google Cloud) mit 3 Knoten erstellt. Der Zookeeper läuft auf allen Knoten und ich habe Kafka auf einem der Slave-Knoten gestartet. Ich kann von jedem Rechner im Cluster aus kommunizieren (veröffentlichen/konsumieren), aber wenn ich versuche, mich von einem entfernten Rechner aus zu verbinden, bekomme ich eine NoBrokersAvailable Ausnahme.Kafka - Fehler beim Verbinden von Remote Broker - NoBrokersAvailable

Ich habe Ports in der Firewall zum Testen geöffnet und ich habe versucht, mit advertised_host und Port in der Kafka-Konfiguration rumzualbern, aber ich kann keine Verbindung herstellen.

Was ist die erwartete Konfiguration? - Ich hätte mit geeigneten Voreinstellungen gerechnet, dass meine Konfiguration sowohl im internen als auch im Remote-Fall funktionieren würde, tut es aber nicht. Ich bin mir nicht sicher, welcher Teil der Konfiguration von Tierpfleger/Kafka mir erlauben würde, dies zu optimieren. Was ist zu tun?

+0

Es gibt einfach viel zu viele Dinge, es könnte be - die Maschinen könnten zum Beispiel "iptables" ausführen. Oder vielleicht hören Zookeeper und Kafka nicht routbare IP-Adressen (z.B. '10.x.x.x1' oder' 192.168.x.x') oder wer weiß, was es sein könnte. –

+0

Danke David. Bekannt. Ich werde in die Vernetzung schauen und wenn ich (jemals) auf den Grund gehe, werde ich es hier für die Aufzeichnung notieren. – ismisesisko

+0

Update aber keine Freude: Ich vereinfachte die Dinge. Ich benutzte einen Knoten mit Tierpfleger und Kafka. Ich benutzte die konfluente Kafka-Distribution, die einige Vorteile bietet. Ich habe lokal und remote mit dem REST-Server getestet, der überprüft, ob der zoekeeper richtig konfiguriert ist und ob ich mich extern mit dem Rest-Server verbinden kann. Wenn ich Kafka starte, notiere ich die Ausgabezeile:> Registrierter Broker 0 bei Pfad/brokers/ids/0 mit Adressen: PLAINTEXT -> EndPoint (cluster-3-m, 9092, PLAINTEXT). Wo es "cluster-3-m" heißt, habe ich hauptsächlich PUBLIC IP verwendet. Offensichtlich wird der Broker gestartet und gebunden - der Python-Client sagt das Gegenteil! – ismisesisko

Antwort

0

Setzen Sie die advertised.listeners=PLAINTEXT://<broker_ip>:9092 in server.properties Datei. Restart kafka-Server und Produzenten sowie Verbraucher (je nachdem, was oder wenn beide läuft)

Bitte überprüfen Sie meine Antwort auf das gleiche Problem in einem anderen Thread

NoBrokersAvailable: NoBrokersAvailable-Kafka Error

Verwandte Themen