Kafka 클러스터 구축 가이드

클러스터 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

태그: ZooKeeper kafka docker cluster configuration

7월 3일 21:16에 게시됨