【问题标题】:Unable to connect kafka to zookeeper with different port using docker compose无法使用 docker compose 将 kafka 连接到具有不同端口的 zookeeper
【发布时间】:2021-06-21 01:22:12
【问题描述】:

我正在尝试将我的 kafka 设置与 zookeeper 连接,包含暴露到默认端口以外的其他端口,但是当我将端口更改为 2181 时,容器运行正常,但如果我在 yml 文件中更改端口,我会无法运行它,任何指导都会有所帮助。

version: '3'

services:
 zookeeper:
  image: wurstmeister/zookeeper
  container_name: zookeeper
  ports:
   - "2182:2181"
 
 kafka:
  image: wurstmeister/kafka
  container_name: kafka
  ports:
   - "9092:9092"
  environment:
   KAFKA_ADVERTISED_HOST_NAME: localhost
   KAFKA_ZOOKEEPER_CONNECT: zookeeper:2182
 

【问题讨论】:

  • ZooKeeper 侦听端口 2181,您始终需要使用该端口号进行容器之间的连接。告诉 Kafka 连接到任意其他端口只会产生“连接被拒绝”错误。为什么要更改端口号?

标签: docker apache-kafka docker-compose apache-zookeeper


【解决方案1】:

正如@DavidMaze 建议的那样。您尝试连接暴露在外部的 2182。请尝试以下操作。

version: '3'

services:
 zookeeper:
  image: wurstmeister/zookeeper
  container_name: zookeeper
  ports:
   - "2182:2181"
 
 kafka:
  image: wurstmeister/kafka
  container_name: kafka
  ports:
   - "9092:9092"
  environment:
   KAFKA_ADVERTISED_HOST_NAME: localhost
   KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

【讨论】:

    【解决方案2】:

    Zookeeper 有自己的配置来修改客户端端口,您似乎对主机端口转发感到困惑。

    但是,wurstmeister 容器没有用于配置它的环境变量,因此您只能使用 2181。

    你可能甚至不应该有一个端口转发,因为几乎没有理由从主机连接到 Zookeeper

    还值得指出的是,该图像自 2019 年以来一直没有更新,而 Zookeeper 从那时起已经发布了几个版本

    【讨论】:

      猜你喜欢
      • 2019-03-23
      • 1970-01-01
      • 2018-04-28
      • 2022-01-25
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2017-07-10
      相关资源
      最近更新 更多