반응형

local 에서 docker 를 이용햇 kafka 서버를 구축하자

 

docker search kafka 를 통해 검색해 보면 

wurstmeister/kafka  가 스타가 제일 많다.

https://hub.docker.com/r/wurstmeister/kafka -- 여기에서 kafka docker 관련 옵션 설명 확인가능하다.

 

kafka in docker 구조

도커 카프카 네트워킹에 대한 설명 레퍼런스이다.

github.com/wurstmeister/kafka-docker/wiki/Connectivity 

docker 로 kafka 를 올리면 다음과 같은 구조가 된다.

multiple 카프카 브로커로 설정도 가능하다.

이런식으로 구성해주면 

다음과 같이 9092 단일포트로 브로커가 구성된다.

 

 

단일 카프카 브로커일때는 

# KAFKA_ADVERTISED_HOST_NAME 옵션을 127.0.0.1 로 하겠지만 multiple 로 할때는 외부에서 접근 가능한 ip 를 넣어야 한다.

 

docker-compose-yml 작성

version: '3.3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka:2.12-2.5.0
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

KAFKA_ADVERTISED_HOST_NAME는 본인의 docker host ip로 수정

multi broker를 사용하지 않고 로컬용이므로, 127.0.0.1로 사용

 

kafka 확인

카프카 툴로 접속 확인

또는 docker 로 접속 후 kafka-topics.sh 를 실행하여 확인가능하다.

# docker container exec -it kafka bash
# kafka-topics.sh --list --bootstrap-server localhost:9092 

kafka 도커에 접속 후 kafka 토픽 리스트를 조회할 수 있다.

 

카프카 공식 문서

kafka.apache.org/quickstart

반응형

+ Recent posts