【发布时间】:2018-06-07 14:41:27
【问题描述】:
我在 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 时,我可以看到相同的主机名。我错过了什么吗?
【问题讨论】:
-
你能发布你完整的
docker-compose.yml吗?另外,您从哪里连接到 kafka? -
我已经更新了完整的 docker-compose.yml,并且我正在为这个 docker 容器 (github.com/confluentinc/cp-docker-images/blob/4.0.x/examples/…) 使用虚拟机。我正在尝试从另一台 Windows 机器连接这个 kafka,其中 docker 容器的主机是 pinggable ,两者都在同一个网络中。
-
你的虚拟机的操作系统是什么?
-
尝试在你的kafka服务中添加这个:
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:29092如果你使用windows作为VM主机 -
虚拟机是redhat linux
标签: docker apache-kafka