GW LABS

실전 카프카 개발부터 운영까지 (2) - 카프카 환경 구성 본문

Book-Review/Programing

실전 카프카 개발부터 운영까지 (2) - 카프카 환경 구성

GeonWoo Kim 2022. 8. 31. 13:50

카프카 도커 컴포즈 설정

# 로컬 PC의 메모리 부족 이슈로 브로커들이 안뜰수도 있다. 
# 수를 조정해가면서 개발환경을 구축하자.

version: '3.6'
services:
    zookeeper:
        container_name: zookeeper
        image: confluentinc/cp-zookeeper:6.1.2
        volumes:
            - "./zookeeper/data:/data"
            - "./zookeeper/logs:/datalog"
        ports:
            - "2181:2181"
        environment: 
            ZOOKEEPER_CLIENT_PORT: 2181 
            ZOOKEEPER_TIME_TICK: 2000 # Ephemeral Node의 헬스 체크 간격 
    kafka1:
        container_name: kafka1
        image: confluentinc/cp-kafka:6.1.2
        restart: on-failure
        ports:
            - "9092:9092"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            KAFKA_BROKER_ID: 1
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
            KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
            KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
        depends_on:
            - zookeeper
    kafka2:
        container_name: kafka2
        image: confluentinc/cp-kafka:6.1.2
        restart: on-failure
        ports:
            - "9093:9092"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            KAFKA_BROKER_ID: 2
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
            KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9093
            KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
        depends_on:
            - zookeeper
    kafka3:
        container_name: kafka3
        image: confluentinc/cp-kafka:6.1.2
        restart: on-failure
        ports:
            - "9094:9092"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            KAFKA_BROKER_ID: 4
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
            KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9094
            KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
        depends_on:
            - zookeeper

 

2.3 5분 만에 카프카 맛보기

  • 카프카의 기본적 역할 - 데이터 버스
  • 프로듀서: 카프카에 메시지를 보내주는 쪽
  • 컨슈머: 카프카에서 메시지를 소비하는 쪽
  • 코디네이터: 주키퍼

 

2.3.2 메세지 주고 받기

  • 토픽생성
  • 프로듀스
  • 컨슘
./kafka-topics --bootstrap-server localhost:9092 --create --topic test --partitions 1 --replication-factor 1
./kafka-console-consumer --bootstrap-server localhost:9092 --topic test
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
Comments