我想在dockers上创建可伸缩的Kafka集群。我正在使用docker图像
https://hub.docker.com/r/wurstmeister/kafka/
用于创建kafka服务器。为了创建单节点kafka和zookeeper,我使用了以下docker compose:
version: '3.1'
services:
kafka:
image: "wurstmeister/kafka"
ports:
- "9095:9092"
hostname: kafka
depends_on:
- zookeeper
environment:
- KAFKA_ADVERTISED_HOST_NAME=kafka
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_PORT=9092
- KAFKA_CREATE_TOPICS=check:3:1
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2185:2181"
通过这些设置,我可以从我的应用程序代码中访问kafka broker和zookeeper
kafka:9092
和
zookeeper:2181
分别在卡夫卡的消费者设置。
但现在我想要可伸缩的集群,所以我修改了docker compose为:
version: '3.1'
services:
kafka:
image: "wurstmeister/kafka"
ports:
- "9095:9092"
hostname: kafka
depends_on:
- zookeeper
environment:
- KAFKA_ADVERTISED_HOST_NAME=kafka
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_PORT=9092
- KAFKA_CREATE_TOPICS=check:3:1
deploy:
replicas: 3
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2185:2181"
在这种情况下,将创建3个卡夫卡经纪人。但是,在这种情况下,如果我不能通过使用kafka broker访问我的主题“check”
卡夫卡:9092
卡夫卡动物园管理员
zookeepr:2181
在我的应用程序代码的kafka使用者设置中。我该如何修改
docker-compose.yml
或者我的应用程序代码是kafka consumer settings,这样我就可以从这些多个代理中读取?