无法连接到卡夫卡

时间:2017-08-21 21:32:28

标签: docker apache-kafka docker-compose

我已将Kafka支持集成到我们的服务器中并进行了测试。它在我的开发人员环境中运行良好,但其他开发人员无法在开发人员环境中运行它。问题类似于我在自己的开发人员环境中遇到的问题,但我无法理解为什么它在我的机器上工作而不是他们的工作。

基本上我们在docker-compose堆栈中运行Kafka。在这两种环境中docker-compose ps都显示正在运行的相同配置。

$ 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 

如果您telnet 127.0.0.1 9092连接到Kafka代理,则在这两种环境中。但是,在他们的环境中,当Kafka Admin客户端尝试连接到bootstrap.servers= "127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"时,它会超时,但对于我的环境,它会立即连接。我们都是从Git中的develop分支运行的,所以我们应该运行相同的环境。

另一个测试:我在我的机器上运行了docker-compose堆栈,当我运行我们的服务器时,它连接正常。当我的同事配置他的bootstrap.servers使用我的ip-address时,他看到同样的问题,即使他可以telnet到我的机器上的代理。

任何人都可以建议任何其他诊断提示和技巧来弄清楚为什么Kafka Admin Client无法连接到经纪人吗?

1 个答案:

答案 0 :(得分:0)

好的,发现了问题。我正在关注https://docs.python.org/3/reference/datamodel.html#object.repr上的示例,并尝试使用KAFKA_ADVERTISED_HOST_NAME的简单路径。 Kafka已弃用advertised.host.name并尝试在多代理配置中使用它是有问题的。

之前我通过向/ etc / hosts添加代理主机名来解决这个问题,这个kludge工作,但我忘了我正在使用kludge并没有告诉其他开发人员。团队不想编辑/ etc / hosts,因此我正在开发一个不涉及advertised.host.name的解决方案