我有下面的docker compose yml,
version: '3.5'
services:
zookeeper:
container_name: kafka-zookeeper
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
networks:
- my-network
kafka:
container_name: kafka-server
image: wurstmeister/kafka:2.12-2.5.0
ports:
- "9092:9092"
links:
- zookeeper
environment:
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- my-network
networks:
my-network:
driver: bridge我参考了下面的参考资料,
https://github.com/wurstmeister/kafka-docker/wiki/Connectivity
我的spring boot application.yml文件如下所示:
kafka:
bootstrap:
url: 127.0.0.1:9092错误是,
[taKafkaProducer] org.apache.kafka.clients.NetworkClient : [Producer clientId=SensorDataKafkaProducer] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.我可以通过客户端工具连接Kafka并查看监听器详细信息127.0.0.1:9092
bd919e5a4df2 wurstmeister/kafka:2.12-2.5.0 "start-kafka.sh" About a minute ago Up About a minute 0.0.0.0:9092->9092/tcp kafka-server
9b94b7dac237 wurstmeister/zookeeper:3.4.6 "/bin/sh -c '/usr/sb…" About a minute ago Up About a minute 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp kafka-zookeeper配置有什么问题吗?
发布于 2020-09-07 16:30:51
使用用户定义的网桥网络,容器可以通过名称或别名相互解析。因此,在您的示例中,application.yml应该指向kafka容器名称:
kafka:
bootstrap:
url: kafka-server:9092此外,它还可以通过容器名称配置kafka通告的监听器:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-server:9092https://stackoverflow.com/questions/63763239
复制相似问题