Lined Notebook

로컬 환경에서 Kafka 구축하기

by HeshAlgo

이번 글에서는 로컬에서 Docker를 이용해 Kafka 서버를 구축해보겠습니다.

 

1. Docker Image 다운받기

Cli 환경에서 docker search를 하거나 Docker Hub을 통해서 직접 kafka Image를 찾아볼 수 있는데 wurstmeister/kafka가 가장 별을 많이 받아있네요. 해당 이미지로 Docker Image를 받아보겠습니다.

 

2. Pre-Requisites

Docker Hub에서 해당 이미지(wurstmeister/kafka)에 접속해보시면 사전 준비가 필요하다고 작성되어있습니다.

Kafka를 실행하기 위해서는 항상 Zookeeper가 띄어져 있는 상태여야 합니다. 그렇기 때문에 docker-compose.yml 파일을 하나 만들어서 한 번에 실행시키는 방법을 추천드립니다. docker-compose로 접속하시면 해당 docker-compose 내부 파일 내용을 확인해보실 수 있습니다. 

 

왜 Zookeeper는 Kafka랑 같의 띄어져야 하는가???

- Zookeeper는 Broker들의 목록과 설정을 관리해주는 역할을 합니다. 그래서 변경사항이 있을 경우 Kafka에 알려주게 되어있습니다.

예를 들어 새로운 Topic을 생성/삭제를 한다던지 아니면 Broker를 추가/삭제를 한다던지 등등...이러한 알림을 kafka에 알려주게 되어있기 때문에 현재는 Zookeeper없이는 Kafka를 실행할수는 없습니다.

 

간단하게 테스트 용도로 사용할 것이기 때문에 아래의 2가지를 통해 사전 준비를 해주시면 될 것 같습니다.

1) docker-compose.yml 파일 작성

2) docker-compose.yml 파일 내부의 KAFKA_ADVERTISED_HOST_NAME을 localhost 또는 127.0.0.1로 수정

 

3. docker compose 실행 

위의 설정이 모두 완료되었다면 docker compose를 실행해보겠습니다.

$ docker-compose up -d

$ docker ps -a

docker compose를 실행해보고 잘 실행이 되고 있는지 확인해보았습니다.

 

이제 해당 카프카 서버에 접속해 정상적으로 작동이 되는지 토픽 목록을 확인해보는 작업을 실행해보겠습니다.

# docker exec -it {CONTAINER_ID} /bin/sh

# kafka-topics.sh --list --bootstrap-server localhost:9092

아마 토픽을 미리 생성해두지 않았다면 빈 리스트를 반환하겠지만 저는 이전에 테스트용으로 미리 생성해놓은 토픽이 있어서 두 개의 토픽 목록을 확인해 볼 수 있네요. 카프카 관련 명령어들은 조만간 작성해 포스트 해보겠습니다.

 

이상으로 kafka를 로컬 환경에서의 설치와 직접 서버에 접속해 테스트까지 진행해보았습니다.

'Kafka' 카테고리의 다른 글

Spring Boot를 활용한 카프카 애플리케이션 개발  (0) 2021.12.19
Kafka 명령어  (0) 2021.12.13
Kafka  (0) 2021.07.22

블로그의 정보

꾸준히 공부하는 개발 노트

HeshAlgo

활동하기