로컬 환경에서 Kafka 구축하기

728x90

이번 글에서는 로컬에서 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