Senden Sie KafkaProducer vom lokalen Rechner an die hortonworks-Sandbox in der virtualbox

8

Ich habe einen wirklich einfachen Produzenten, den ich auf meinem lokalen Windows-Rechner durch eclipse laufe ... Was ich wirklich will, ist, eine Nachricht an kafka weiterzuleiten, damit ich den Broker durch den Tierpfleger anzeigen kann. Nur um zu sehen, wie die Kommunikation von Ende zu Ende funktioniert ... Also hier geht der Code:

%Vor%

Aber nach einiger Zeit bekomme ich

%Vor%

Ich habe hortonworks Sandbox-Setup, mit kafka läuft, aber ich kann nicht scheinen, um sich damit zu verbinden. Ich habe versucht, Portweiterleitung in den Virtualbox-Netzwerkkonfigurationen, aber immer noch das gleiche Problem. Gibt es etwas, das ich vermisse?

    
Mez 17.07.2015, 13:13
quelle

1 Antwort

9

Sie haben die Ports korrekt geöffnet, vermutlich 9092 und 2181, wenn Sie auch versuchen, einen Kafka-Consumer zu erstellen / verwenden. Kafka kündigt jedoch seinen "Hostnamen" an, den Hersteller und Verbraucher verwenden sollen. Dieser Name muss von dem Ort, an dem Sie eine Verbindung herstellen, aufgelöst werden. Der VirtualBox / VM-Hostname ist nicht da, da es keinen Eintrag auf dem Hostcomputer gibt, der ihm sagt, dass er den Hostnamen auflösen soll und in Ihrem Fall zu localhost gehen soll und nichts hilft, das wie ein DNS aufzulösen. Sie könnten Ihre Hosts-Datei bearbeiten, aber das ist zu aufdringlich. Lange Rede, kurzer Sinn, Kafka erkennt an, dass dies eine Anforderung sein könnte und stellt einen Konfigurationsparameter bereit, mit dem Sie überschreiben können, was Kafka der Welt über den Weg zum Broker erzählt. Die Konfiguration heißt advertised.host.name und advertised.port . Wenn Sie den Port nicht ändern, müssen Sie nur advertised.host.name einstellen.

Setze advertised.host.name in Kafkas server.properties Konfigurationsdatei auf localhost. Dies zusammen mit dem Öffnen der Ports sollte den Trick tun.

    
akizl 07.09.2015 23:53
quelle