【发布时间】:2018-11-28 03:11:16
【问题描述】:
我正在尝试通过 Docker 连接到单节点 Kafka 服务器,但出现以下错误:
%3|1529395526.480|FAIL|rdkafka#producer-1| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Connect to ipv4#127.0.0.1:9092 failed: Connection refused
%3|1529395526.480|ERROR|rdkafka#producer-1| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Connect to ipv4#127.0.0.1:9092 failed: Connection refused
%3|1529395526.480|ERROR|rdkafka#producer-1| [thrd:localhost:9092/bootstrap]: 1/1 brokers are down
docker-compose.yml文件内容如下:
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
network_mode: host
environment:
ZOOKEEPER_CLIENT_PORT: 2181
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:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_ADVERTISED_HOSTNAME: kafka
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
extra_hosts:
- "moby:127.0.0.1"
schema_registry:
image: confluentinc/cp-schema-registry
hostname: schema_registry
depends_on:
- zookeeper
- kafka
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema_registry
SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: '127.0.0.1:2181'
Dockerfile 内容如下:
FROM python:2
WORKDIR /kafkaproducerapp
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "./BackOffice_Producer.py" ]
我做错了什么?
【问题讨论】:
-
您是否尝试将端口 9092 添加到您的 kafka?
-
您没有将容器的端口映射到您的主机,就像您为架构注册表所做的那样,您也可以将主机添加到容器的主机文件中,以便代替
localhost见this example for a java app -
添加了端口,但我仍然遇到同样的错误。
-
你从哪里得到这个撰写文件?您不应该使用 localhost 或 127.0.0.1 将一个容器连接到其他容器......基本上,Kafka 和 Registry 都可以访问 Zookeeper
标签: python docker apache-kafka apache-zookeeper confluent-schema-registry