赞
踩
version: '3' services: kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" #端口映射 volumes: - ./kafka:/kafka environment: KAFKA_ADVERTISED_HOST_NAME: 192.168.25.129 # 修改:宿主机IP #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.25.129:9092 # 修改:宿主机IP KAFKA_BROKER_ID: 0 #指定kafka的id KAFKA_ADVERTISED_PORT: 9092 #kafka外放端口 KAFKA_MESSAGE_MAX_BYTES: 2000000 KAFKA_ZOOKEEPER_CONNECT: 192.168.25.129:2181 depends_on: - zookeeper kafka1: image: wurstmeister/kafka container_name: kafka1 ports: - "9093:9092" volumes: - ./kafka1:/kafka environment: KAFKA_ADVERTISED_HOST_NAME: 192.168.25.129 # 修改:宿主机IP #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.25.129:9093 # 修改:宿主IP KAFKA_BROKER_ID: 1 #指定kafka的id KAFKA_ADVERTISED_PORT: 9093 #kafka外放端口 KAFKA_MESSAGE_MAX_BYTES: 2000000 KAFKA_ZOOKEEPER_CONNECT: 192.168.25.129:2181 depends_on: - zookeeper kafka2: image: wurstmeister/kafka container_name: kafka2 ports: - "9094:9092" volumes: - ./kafka2:/kafka environment: KAFKA_ADVERTISED_HOST_NAME: 192.168.25.129 # 修改:宿主机IP #KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.25.129:9094 # 修改:宿主IP KAFKA_BROKER_ID: 1 #指定kafka的id KAFKA_ADVERTISED_PORT: 9094 #kafka外放端口 KAFKA_MESSAGE_MAX_BYTES: 2000000 KAFKA_ZOOKEEPER_CONNECT: 192.168.25.129:2181 depends_on: - zookeeper
volumes资源映射,在宿主机中映射容器中的/kafka地址,会保存kafka容器的相关日志,保留消息。
如果需要需要查看kafka容器中的配置文件,也有容器中的配置路径/opt/kafka/config/server.properties。
这里在一台主机上开启3个kafka做集群,所以宿主机IP是一样的。
配置项根据实际情况做出修改。kafka的容器根据所在的宿主机IP填写不同的地址和端口。
Kafdrop是Apache Kafka的开源Web UI可视化界面。
docker-compose.xml文件配置如下:
kafdrop:
image: obsidiandynamics/kafdrop
container_name: kafdrop
restart: "no"
ports:
- "9000:9000"
environment:
KAFKA_BROKERCONNECT: "192.168.25.129:9092"
KAFKA_BROKERCONNECT配置kafka的地址端口,只需配置集群中的任意一个,就可以看到集群中所有的kafka设备。
zookeeper:
image: zookeeper
container_name: zookeeper
restart: always
volumes:
- ./docker/zookeeper:/etc/zookeeper
ports:
- "2181:2181"
kafka的运行离不开zookeeper,zookeeper不用特意去做配置。
一次启动docker-compose内的容器
//拉取镜像
docker-compose pull
//构建启动容器
docker-compose up
分开启动docker-compose内的容器
//拉取镜像
docker-compose pull 容器名
docker-compose up -d 容器名
注意:必须优先启动zookeeper,再启动各个kafka,最后启动图形化工具kafdrop
kafka集群的效果图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。