Kafka
[Kafka] 도커 컴포즈 + 카프카, 주키퍼 환경 구축
new_challenge
2020. 6. 18. 20:17
반응형
이번 포스팅은 도커 컴포즈를 사용하여
카프카와 쥬키퍼 클러스터를사용해보는 포스팅 입니다.
도커 컴포즈 생성
docker-compose.yml
아래 컴포즈 파일은 zookeeper 클러스터 1개와 kafka 클러스터 1개로 구성되어 있다
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper:3.4.6
container_nme: zoo1
ports:
- "2181:2181"
networks:
- zooNkaf
kafka:
image: wurstmeister/kafka:2.12-2.0.1 # 특정 버전으로 지정
container_name: kaf1
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test-topic:1:1" # Topic명:Partition개수:Replica개수
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "9092:9092"
depends_on:
- zookeeper
networks:
- zooNkaf
networks:
zooNkaf:
driver: bridge
도커 컴포즈 실행 및 확인
> 위 파일 생성 후, 해당 파일이 있는 위치에서 도커 컴포즈를 실행
$ docker-compose up
> 실행 중인 컨테이너 확인
$ docker ps
> 주키퍼 로그 확인
$ docker logs zoo1 [위에서 설정 한 컨테이너 이름]
> 카프카 로그 확인
$ docker logs kaf1
카프카 사용
카프카 바이너리 파일 다운
아래 링크에서 도커 이미지 생성에 사용한 버전과 동일한 버전을 찾아서 다운로드 한다
아래와 같은 순서로 파일 다운 > 압축 해제 > 해당 폴더 접근
# 다운로드
$ wget https://archive.apache.org/dist/kafka/2.0.1/kafka_2.12-2.0.1.tgz
# 압축 해제
$ tar -zxvf kafka_2.12-2.0.1.tgz
# 압축 폴더 삭제
$ rm kafka_2.12-2.0.1.tgz
# 해당 폴더 접근
$ cd kafka_2.12-2.0.1
카프카 사용 및 테스트
생성된 토픽 리스트 확인
도커 컴포즈 파일안에 토픽 생성하는 내용이 있어서 기본으로 토픽 하나가 생성되어 있다 ( test_topic)
$ sh bin/kafka-topics.sh --zookeeper localhost:2181 --list
Producer / Consumer 사용
> 2개의 다른 콘솔 창을 준비한다
> 하나는 프로듀서 용 / 하나는 컨슈머 용
프로듀서 실행
# 프로듀서 실행
bin/kafka-console-producer.sh --topic test-topic --broker-list localhost:9092
> 프로듀서 실행 후 입력 할 수 있게 되는데, 그곳에서 메세지를 보내면 컨슈머를 실행 한 창에서 메세지 확인이 가능
컨슈머 실행
# 컨슈머 실행
bin/kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9092 --from-beginning
> 프로듀서에서 보낸 메세지를 확인 할 수 있다.
새로운 토픽 생성
# 새로운 토픽 생성
$ bin/kafka-topics.sh --create --topic check-topic --partitions 1 --replication-factor 1 --zookeeper localhost:2181
# 토픽 리스트 확인
$ bin/kafka-topics.sh --zookeeper localhost:2181 --list
도커 컴포즈 종료
$ docker-compose down
반응형