我有下面的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
配置有问题吗?
1条答案
按热度按时间to94eoyn1#
使用用户定义的网桥网络,容器可以通过名称或别名相互解析。因此,在您的示例中,application.yml应该指向kafka容器名称:
此外,对于它,还可以按容器名称配置kafka播发侦听器: