我使用此项目https://github.com/wurstmeister/kafka-docker在docker容器中设置kafka。我可以成功创建并列出主题,但是一旦我尝试使用
生成消息bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
或
bin/kafka-console-producer.sh --broker-list 0.0.0.0:9092 --topic test
我收到以下错误:
错误使用密钥向主题测试发送消息时出错:null,value: 4个字节有错误: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException:过期1条记录 对于test-0:自批量创建加上延迟时间
以来已经过了1536 ms
我的 docker-compose.yml 看起来像这样:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: docker.for.mac.localhost
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
我尝试了 KAFKA_ADVERTISED_HOST_NAME 属性的不同选项,包括 docker.for.mac.localhost ,它应该被解析为实际的docker主机ip和 0.0.0.0 ,但结果是一样的。
答案 0 :(得分:0)
您可以尝试使用此docker-compose,它对我有用:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
stdin_open: true
tty: true
ports:
- 2181:2181/tcp
kafka:
image: wurstmeister/kafka:0.11.0.1
environment:
KAFKA_CREATE_TOPICS: test:1:1
KAFKA_ZOOKEEPER_CONNECT: <<HOST_IP>>:2181
KAFKA_ADVERTISED_HOST_NAME: <<HOST_IP>>
KAFKA_ADVERTISED_PORT: '9092'
KAFKA_BROKER_ID: '999'
stdin_open: true
tty: true
links:
- zookeeper:zookeeper
ports:
- 9092:9092/tcp
答案 1 :(得分:-3)
请勿使用127.0.0.1
之类的本地IP。改用真正的IP。