docker-compose.yml 작성
version: '3.1'
services:
zookeeper-1:
container_name: zookeeper-1
image: confluentinc/cp-zookeeper:7.0.1
ports:
- '2181:2181'
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_SERVER_ID: 1
networks:
- kafka-cluster-net
zookeeper-2:
container_name: zookeeper-2
image: confluentinc/cp-zookeeper:7.0.1
ports:
- '2182:2182'
environment:
ZOOKEEPER_CLIENT_PORT: 2182
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_SERVER_ID: 2
networks:
- kafka-cluster-net
zookeeper-3:
container_name: zookeeper-3
image: confluentinc/cp-zookeeper:7.0.1
ports:
- '2183:2183'
environment:
ZOOKEEPER_CLIENT_PORT: 2183
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_SERVER_ID: 3
networks:
- kafka-cluster-net
kafka-1:
container_name: kafka-1
image: confluentinc/cp-kafka:7.0.1
ports:
- '9092:9092'
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-1:2182,zookeeper-1:2183
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-1:29092,EXTERNAL://localhost:9092
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_NUM_PARTITIONS: 3
depends_on:
- zookeeper-1
- zookeeper-2
- zookeeper-3
networks:
- kafka-cluster-net
kafka-2:
container_name: kafka-2
image: confluentinc/cp-kafka:7.0.1
ports:
- '9093:9093'
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-1:2182,zookeeper-1:2183
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-2:29093,EXTERNAL://localhost:9093
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_NUM_PARTITIONS: 3
depends_on:
- zookeeper-1
- zookeeper-2
- zookeeper-3
networks:
- kafka-cluster-net
kafka-3:
container_name: kafka-3
image: confluentinc/cp-kafka:7.0.1
ports:
- '9094:9094'
environment:
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-1:2182,zookeeper-1:2183
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-3:29094,EXTERNAL://localhost:9094
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_NUM_PARTITIONS: 3
depends_on:
- zookeeper-1
- zookeeper-2
- zookeeper-3
networks:
- kafka-cluster-net
kafdrop:
image: obsidiandynamics/kafdrop:latest
hostname: kafdrop
container_name: kafdrop
ports:
- "9000:9000"
environment:
- KAFKA_BROKERCONNECT=kafka-1:29092
depends_on:
- kafka-1
networks:
- kafka-cluster-net
networks:
kafka-cluster-net:
driver: bridge
시작 명령어
sudo docker-compose up -d