kafka - docker 伪集群
docker-compose配置
version: '3.1'
services:
zoo:
image: zookeeper
container_name: zoo
hostname: zoo
ports:
- 2181:2181
volumes:
- "./zoo/data:/data"
- "./zoo/datalog:/datalog"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo:2888:3888;2181
kafka1:
image: wurstmeister/kafka
hostname: kafka1
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.xx.x:9092 ## 宿主机IP
KAFKA_ADVERTISED_HOST_NAME: 192.168.xx.x
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: "zoo:2181"
volumes:
- "./kafka/kafka1/data/:/kafka"
kafka2:
image: wurstmeister/kafka
container_name: kafka2
ports:
- "9093:9092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.xx.x:9093 ## 宿主机IP
KAFKA_ADVERTISED_HOST_NAME: 192.168.xx.x
KAFKA_ADVERTISED_PORT: 9093
KAFKA_ZOOKEEPER_CONNECT: "zoo:2181"
volumes:
- "./kafka/kafka2/data/:/kafka"
kafka3:
image: wurstmeister/kafka
container_name: kafka3
ports:
- "9094:9092"
environment:
KAFKA_BROKER_ID: 3
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.xx.x:9094 ## 宿主机IP
KAFKA_ADVERTISED_HOST_NAME: 192.168.xx.x
KAFKA_ADVERTISED_PORT: 9094
KAFKA_ZOOKEEPER_CONNECT: "zoo:2181"
volumes:
- "./kafka/kafka3/data/:/kafka"
kafka-manager: # Kafka 图形管理界面
image: sheepkiller/kafka-manager:latest
container_name: kafka-manager
hostname: kafka-manager
ports:
- "9000:9000"
environment:
ZK_HOSTS: zoo:2181
KAFKA_BROKERS: kafka1:9092,kafka2:9093,kafka3:9094
启动:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
789ba7389459 zookeeper 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp zoo
1d8d98bdc387 wurstmeister/kafka 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka1
076eefa96bf5 wurstmeister/kafka 0.0.0.0:9093->9092/tcp, :::9093->9092/tcp kafka2
c6ef4ee46fc1 sheepkiller/kafka-manager:latest 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp kafka-manager
855a13b1317a wurstmeister/kafka 0.0.0.0:9094->9092/tcp, :::9094->9092/tcp kafka3
bash-5.1# kafka-topics.sh --bootstrap-server localhost:9092 --topic my-topic --describe
Topic: my-topic TopicId: X8jf0KEIR5eqJHcHJuof1w PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: my-topic Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: my-topic Partition: 1 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2
Topic: my-topic Partition: 2 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3