카프카를 로컬환경에서 사용하기 위해서는 주키퍼등 여러가지 설치 및 설정을 해야할 것이 많다.
따라서 나는 카프카를 도커 환경에다 설치해서, 로컬환경과 개발환경을 분리하는 방법을 택했다.
주키퍼
라는 분산 코디네이터 프레임워크를 기반으로 제작되어져있기 때문에 주키퍼의 설치가 선행으로 필요하다.version: '2'
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는 아파치에서 제공하고 있는 공식 docker image가 존재하고 있지 않기 때문에, docker hub에서 제공하는 가장 Star수가 높은 이미지를 선택해서 설치했다.
Docker search kafka
하면 실시간으로 stars 확인가능
# 카프카 설치
docker-compose up -d
# 카프카 실행
docker container exec -it kafka bash
를 통해서 카프카 환경에 접속할 수 있다.
설치한 이미지는 kafka 경로가 $PATH에 등록되어있어서, 카프카가 지원하는 다양한 쉘들을 터미널에 바로 입력하기만 해도 사용가능하다.
#토픽 생성하기
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic hello.kafka.
#토픽 리스트 확인
kafka-topics.sh --bootstrap localhost:9092 --list
#토픽 상세정보 확인
kafka-topics.sh --bootstrap localhost:9092 --describe --topic hello.kafka.
잘 동작된다:)
다음은 간단하게 카프카 shell 명령어에 대해 알아보겠다 :)