【问题标题】:Cannot connect to Kafka无法连接到卡夫卡
【发布时间】:2017-08-22 23:45:15
【问题描述】:

我已将 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 地址时,他看到了同样的问题,即使他可以远程登录到我机器上的代理。

任何人都可以提出任何其他诊断提示和技巧来找出 Kafka Admin Client 无法连接到代理的原因吗?

【问题讨论】:

    标签: docker apache-kafka docker-compose


    【解决方案1】:

    好的,找到问题了。我正在关注https://github.com/wurstmeister/kafka-docker 的示例,并尝试采用使用 KAFKA_ADVERTISED_HOST_NAME 的简单路径。 Kafka 已弃用 Advertisementd.host.name 并且尝试在多代理配置中使用它是有问题的。

    之前我通过将代理主机名添加到 /etc/hosts 解决了这个问题,这个 kludge 可以工作,但我忘记我正在使用这个 kludge 并且没有告诉其他开发人员。团队不想编辑 /etc/hosts,所以我正在研究一个不涉及adverted.host.name 的解决方案

    【讨论】:

      猜你喜欢
      • 2020-07-21
      • 2020-12-22
      • 2017-11-14
      • 1970-01-01
      • 2023-02-15
      • 2020-08-27
      • 2021-09-07
      • 2016-09-03
      • 2018-01-18
      相关资源
      最近更新 更多