繁体   English   中英

无法连接在docker中运行的Kafka

[英]Cannot connect Kafka running in docker

我在docker compose yml文件中具有以下配置,用于发布的侦听器

我的docker-compose.yml

  version: '2'
  services:
  zookeeper:
  image: confluentinc/cp-zookeeper:latest
  network_mode: host
  environment:
  ZOOKEEPER_CLIENT_PORT: 32181
  ZOOKEEPER_TICK_TIME: 2000
extra_hosts:
  - "moby:127.0.0.1"

kafka:
image: confluentinc/cp-kafka:latest
network_mode: host
depends_on:
  - zookeeper
environment:
  KAFKA_BROKER_ID: 1
  KAFKA_ZOOKEEPER_CONNECT: localhost:32181
  KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://lnc52c9:29092
  KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
extra_hosts:
  - "moby:127.0.0.1"

我使用以下属性连接此kafka

props.put("bootstrap.servers", "lnc52c9:29092"); 

当我尝试在该服务器中生成消息时,出现以下错误

警告o.apache.kafka.clients.NetworkClient-提取具有相关ID 1的元数据时出错:{foo = LEADER_NOT_AVAILABLE}

主机可从我的计算机ping通,因为它全部位于同一网络中,没有防火墙问题。 当我在Docker容器中使用命令hostname ,我可以看到相同的主机名。 我想念什么吗?

我认为您需要在容器中暴露 kafka 端口 您可以在docker-compose文件中执行此操作,方法是添加以下内容:

ports: "29092:29092"

这应该在kafka服务定义中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM