로컬 환경에서 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