2017-08-21 3 views
1

Ich habe den Kafka-Support in unseren Server integriert und getestet. Es läuft gut in meiner Entwicklerumgebung, aber andere Entwickler können es in ihrer Entwicklerumgebung nicht ausführen. Das Problem ähnelt dem, was ich in meiner eigenen Entwicklerumgebung erlebt habe, aber ich kann nicht verstehen, warum es auf meiner Maschine funktioniert und nicht auf ihrer.Verbindung mit Kafka nicht möglich

Im Grunde laufen wir Kafka in einem Docker-Compose-Stack. In beiden Umgebungen wird docker-compose ps die gleiche Konfiguration ausgeführt.

$ docker-compose ps 
      Name       Command    State       Ports       
---------------------------------------------------------------------------------------------------------------------------- 
localdockerdevelop_kafka-1_1  start-kafka.sh     Up  0.0.0.0:9092->9092/tcp        
localdockerdevelop_kafka-2_1  start-kafka.sh     Up  0.0.0.0:9093->9092/tcp        
localdockerdevelop_kafka-3_1  start-kafka.sh     Up  0.0.0.0:9094->9092/tcp        
localdockerdevelop_mysql_1  docker-entrypoint.sh mysqld  Up  0.0.0.0:3306->3306/tcp        
localdockerdevelop_redis_1  docker-entrypoint.sh redis ... Up  0.0.0.0:6379->6379/tcp        
localdockerdevelop_zookeeper_1 /bin/sh -c /usr/sbin/sshd ... Up  0.0.0.0:2181->2181/tcp, 22/tcp, 2888/tcp, 3888/tcp 

In beiden Umgebungen, wenn Sie telnet 127.0.0.1 9092 verbinden Sie mit dem Kafka-Broker. Jedoch, in ihrer Umgebung, wenn der Kafka Admin Client versucht, eine Verbindung zu bootstrap.servers= "127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094" es Timeout, aber für meine Umgebung verbindet es sofort. Wir laufen beide von unserem Zweig develop in Git, also sollten wir identische Umgebungen betreiben.

Noch ein Test: Ich habe meinen Docker-Compose-Stack auf meinem Rechner laufen, und wenn ich unseren Server läuft, verbindet es sich gut. Wenn mein Kollege seinen bootstrap.servers so konfiguriert, dass er meine IP-Adresse verwendet, sieht er das gleiche Problem, obwohl er mit dem Broker auf meinem Rechner telnet.

Kann jemand andere diagnostische Tipps und Tricks vorschlagen, um herauszufinden, warum der Kafka Admin Client keine Verbindung zu einem Broker herstellen kann?

Antwort

0

Okay, das Problem gefunden. Ich folgte den Beispielen bei https://github.com/wurstmeister/kafka-docker und versuchte, den einfachen Weg der Verwendung von KAFKA_ADVERTISED_HOST_NAME zu nehmen. Kafka hat advertised.host.name abgelehnt und versucht, es in einer Multi-Broker-Konfiguration zu verwenden, ist problematisch.

Früher habe ich, um das Problem durch das Hinzufügen Broker Host-Namen in/etc/hosts und dieser Flickschusterei funktioniert, aber ich vergessen ich die Flickschusterei wurde mit und nicht den anderen Entwicklern zu sagen habe. Das Team möchte nicht/etc/hosts bearbeiten müssen. Daher arbeite ich an einer Lösung, die advertised.host.name

nicht berücksichtigt
Verwandte Themen