이번 2장은 실제 Kafka를 설치해보는 것을 정리해보려한다.
내가 참고하는 책에서는 Linux Ubuntu 기반의 설치 및 실습을 진행하는데 나에게는 Macbook이라는 훌륭한 개발 머신이 있기 때문에 Macbook에서 설치 및 실습을 하고자 한다.
추가로 Docker를 활용하여 컨테이너에 kafka를 설치하고 실습을 진행해보고자 한다. 후에 Docker는 정리하고자 한다.
Docker를 활용한다고 했으므로 Docker부터 설치해보자.
https://www.docker.com/products/docker-desktop
OS에 따라 그리고 Chip에 따라 설치를 진행한다.
docker -v # docker 버전
docker-compose -v # docker-compose 버전
mac 환경에서 docker 설치시 docker-compose 또한 자동으로 설치 된다.
그리고 나는 kafka 실습에는 docker-compose를 활용할 것이다.
왜냐하면 kafka와 Zookeeper(분산 시스템을 코디네이트 하는 시스템 즉 kafka 분산 처리에 대한 코디네이트를 진행한다고 보면 될 것 같다.)두개를 모두 활용하기 위해서 사용한다. 그리고 docker-compose의 설명은 다음과 같다.
Docker Compose
It is a tool that was developed to help define and share multi-container applications. With Compose, we can create a YAML file to define the services and with a single command, can spin everything up or tear it all down
// Docker Compse
이 것은 멀티 컨테이너 어플리케이션을 정의하고 공유하는 것을 도와주기 위해 개발되었다. Compose를 활용하면 우리는 서비스를 정의한 YAML 파일을 생성할 수 있고 명령 하나로 모든 것을 실행시키거나 해체 할 수 있습니다.
그리고 docker search 명령어를 활용하여 docker내 kafka 이미지를 검색해보면
docker search kafka
여기서 가장 STAR가 많은
wurstmeister/kafka를 활용해보자.
git clone https://github.com/wurstmeister/kafka-docker
git clone을 받은 자리에 docker-compose.yml값을 다음과 같이 수정하자
수정한 항목은 2가지로
1) KAFKA_ADVERTISED_HOST_NAME : 127.0.0.1
2) KAFKA_CREATE_TOPICs : "ErJuer:1:1"
# docker-compose.yml
version: '2'
services:
zookeeper:
container_name: er-zookeeper
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
container_name: er-kafka
image: wurstmeister/kafka
depends_on:
- zookeeper
ports:
- "9092"
environment:
DOCKER_API_VERSION: 1.22
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICs: "ErJuer:1:1" # Topic명:Partition개수:Replica개수
volumes:
- /var/run/docker.sock:/var/run/docker.sock
내가 정의한 docker-compose 값을 background로 실행시킨다.
그러면 docker-compose.yml에서 정의한 zookeeper와 kafka가 실행된다.
or(docker-compose -f docker-compose-single-broker.yml up -d)
해당 컨테이너의 로그를 확인하기 위해서는 다음과 같은 명령어를 입력하면 확인 할 수 있다.
docker container logs er-zookeeper #zookeeper 로그 확인
docker container logs er-kafka # kafka 로그 확인
Docker 컨테이너 안에 kafka 및 zookeeper 설치 및 설정이 완료되었다.
그 다음장은 실제로 토픽(ErJuer)을 생성해보고 메시지 값들을 확인하고 받을 수 있는지 실습을 진행해보고자 한다.
끝.
'개발 지식 > Kafka' 카테고리의 다른 글
[Kafka] 카프카는 어떻게 구성 되어 있는가 (feat. 디자인) (0) | 2022.05.24 |
---|---|
[Kafka] 카프카 스트림즈(Kafka Streams) API (0) | 2021.11.24 |
[Kafka] kafka 토픽 생성, 메시지 Producer 및 Consumer - 02 (Mac) (0) | 2021.11.04 |
[Kafka] 카프카란 무엇인가 (0) | 2021.10.21 |
댓글