我已经在 Docker 的 fig.yml 文件中配置了 Zookeeper 和 Kafka 容器。两个容器都可以正常启动。但是在发送了一些消息之后,我的应用程序 /zk-client 挂起。在检查 zookeeper 日志时,我看到了错误:
Error Path:/brokers Error:KeeperErrorCode = NoNode for /brokers
我的 fig.yml 如下:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
environment:
ZK_ADVERTISED_HOST_NAME: xx.xx.x.xxx
ZK_CONNECTION_TIMEOUT_MS: 6000
ZK_SYNC_TIME_MS: 2000
ZK_DATADIR: /path/to/data/zk/data/dir
kafka:
image: wurstmeister/kafka:0.8.2.0
ports:
- "xx.xx.x.xxx:9092:9092"
links:
- zookeeper:zk
environment:
KAFKA_ADVERTISED_HOST_NAME: xx.xx.x.xxx
KAFKA_LOG_DIRS: /home/svc_cis4/dl
volumes:
- /var/run/docker.sock:/var/run/docker.sock
我已经搜索了很长时间,但我还没有找到解决方案。我也尝试使用 ZK_DATADIR: '/path/to/zk/data/dir' 在 fig.yml 中设置数据目录,但它似乎没有帮助。任何帮助将不胜感激。
更新
内容/opt/kafka_2.10-0.8.2.0/config/server.properties
:
broker.id=0
port=9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000