반응형
실행에 앞서 PC에 docker가 설치되어 있어야 한다.
1. kafka-docker repository clone
$ git clone https://github.com/wurstmeister/kafka-docker
2. docker-compose-single-borker.yml 수정
해당 compose 파일을 사용하면 zookeeper-1대, broker(kafka)-1대 를 실행시킬 수 있다.
multi broker는 나중에 기회가 되면 셋팅 해보자.
로컬에서 실행하므로 KAFKA_ADVERTISED_HOST_NAME을 127.0.0.1로 수정한다.
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_CREATE_TOPICS: "test:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
3. docker container 실행
$ docker-compose -f docker-compose-single-broker.yml up
트러블 슈팅!!
기존 PC에서는 문제 없이 실행되었는데, 새로 구비한 개발장비에서 아래와 같은 오류가 나서 kafka가 올라가지 않는 현상이 발생했다.
-> kafka sed unmatched '@'
https://github.com/wurstmeister/kafka-docker/issues/652
docker-compose-single-broker.yml에 KAFKA_ADVERTISED_PORT=9092를 추가해줬더니 정상 동작하는 것을 확인했다.
(오류가 왜 났는지 디테일하게 찾아보지 않았음)
4. Topic 생성하기
kafka에서 제공하는 shell을 사용해야하기 때문에 kafka를 설치해야한다.
$ wget http://apache.mirror.cdnetworks.com/kafka/2.8.0/kafka_2.12-2.8.0.tgz
$ tar xzvf kafka_2.12-2.8.0.tgz
corn topic을 생성한다.
$ ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic corn
5. producer/consumer 사용해보기
터미널을 2개 띄어서 하나는 consumer, 하나는 producer로 사용해보자.
consumer
corn 토픽을 처음 offset부터 읽는다는 의미
$ $ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic corn --from-beginning
prooducer
$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic corn
프로듀서를 실행하면 입력을 할 수 있는 창이 나타나고, 여기에 메시지를 입력하면 consumer가 발행된 메시지를 읽게 된다.
반응형
'프로그래밍 노트 > 인프라' 카테고리의 다른 글
[kafka] 카프카 설치 및 실행 (환경설정) (0) | 2021.07.10 |
---|---|
[kafka] 주키퍼(zookeeper) 설치 및 실행 (환경설정) (0) | 2021.06.30 |
[kafka] 카프카 고가용성과 리플리케이션(장애 극복 방법) (0) | 2021.05.04 |
[kafka] 카프카 특징 (데이터 모델, 디자인 특징) (0) | 2021.04.30 |
[Kafka] 주키퍼(zookeeper)란 무엇인가? (2) | 2021.04.30 |