클러스터 IP 주소: 192.168.0.191 192.168.0.110 192.168.0.122
세 대의 서버를 사용하여 Zookeeper와 Kafka 클러스터를 구성합니다.
각 서버에서 다음 명령어로 Zookeeper 이미지를 다운로드합니다.
docker pull zookeeper:3.4
다음으로 각 서버에 디렉토리를 생성하고 권한을 부여합니다.
chmod 777 /home/admin/kafka/zookeeper/
chmod 777 /home/admin/kafka/zookeeper/config
chmod 777 /home/admin/kafka/zookeeper/data
chmod 777 /home/admin/kafka/zookeeper/datalog
서버 192.168.0.191 설정
docker-compose.yml 파일:
version: '3'
services:
zookeeper:
image: zookeeper:latest
restart: always
hostname: zk_node_1
container_name: zk_container_1
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "8080:8080"
volumes:
- /home/admin/kafka/zookeeper/config/zoo.cfg:/conf/zoo.cfg
- /home/admin/kafka/zookeeper/data:/data
- /home/admin/kafka/zookeeper/datalog:/datalog
environment:
ZOO_MY_ID: 1
zoo.cfg 파일 설정:
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=false
4lw.commands.whitelist=*
server.1=127.0.0.1:2888:3888
server.2=192.168.0.110:2888:3888
server.3=192.168.0.122:2888:3888
서버 192.168.0.110 설정
docker-compose.yml 파일:
version: '3'
services:
zookeeper:
image: zookeeper:latest
restart: always
hostname: zk_node_2
container_name: zk_container_2
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "8080:8080"
volumes:
- /home/admin/kafka/zookeeper/config/zoo.cfg:/conf/zoo.cfg
- /home/admin/kafka/zookeeper/data:/data
- /home/admin/kafka/zookeeper/datalog:/datalog
environment:
ZOO_MY_ID: 2
서버 192.168.0.122 설정
docker-compose.yml 파일:
version: '3'
services:
zookeeper:
image: zookeeper:latest
restart: always
hostname: zk_node_3
container_name: zk_container_3
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "8080:8080"
volumes:
- /home/admin/kafka/zookeeper/config/zoo.cfg:/conf/zoo.cfg
- /home/admin/kafka/zookeeper/data:/data
- /home/admin/kafka/zookeeper/datalog:/datalog
environment:
ZOO_MY_ID: 3
Kafka 설정
서버 192.168.0.191의 kafka/docker-compose.yml:
version: '3'
services:
kafka:
image: bitnami/kafka:latest
restart: always
hostname: kafka-node-1
container_name: kafka
ports:
- "9092:9092"
- "9999:9999"
volumes:
- ./logs:/opt/bitnami/kafka/logs
- ./data:/bitnami/kafka/data
- ./config/server.properties:/opt/bitnami/kafka/config/server.properties
server.properties 설정:
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.0.191:9092
zookeeper.connect=192.168.0.191:2181,192.168.0.110:2181,192.168.0.122:2181