我试图让 Kafka 第一次在 docker-compose 上工作。应用程序在没有 docker 的情况下运行良好。但是在 docker 上,我得到了如下所述的错误。卡夫卡为什么会抛出这个错误?
错误:
电子邮件服务_1 | 2018-12-01 14:32:02.448 WARN 1 — [ntainer#0-0-C-1] OakcNetworkClient : [Consumer clientId=consumer-2, groupId=kafka] 1 个分区具有没有匹配侦听器的领导代理,包括 [email-token-0]
我的 docker-compose 配置:
version: '3.3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
command: [start-kafka.sh]
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: 192.168.23.134
KAFKA_CREATE_TOPICS: "email-token:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "9092:9092"
depends_on:
- zookeeper
email-service:
build: ./email-service
environment:
SPRING_KAFKA_BOOTSTRAPSERVERS: kafka:9092
ports:
- "8081:8081"
depends_on:
- kafka
原文由 user2997204 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如您对问题的评论中所述,问题似乎出在 Kafka 经纪人的广告名称上。根据您的 docker-compose,您应该使用
192.168.23.134
但您的电子邮件服务正在使用kafka:9092
。你可以试试这个 docker-compose。我用confluentinc
提供的最新 Zookeeper 和 Kafka 替换了 wurstmeister 服务,并添加了您的电子邮件服务。请注意
KAFKA_ADVERTISED_HOST_NAME
已被弃用,建议使用KAFKA_ADVERTISED_LISTENERS
代替。有关KAFKA_ADVERTISED_LISTENERS
的更多信息,请查看 此处。