docker-compose.yml
version: '3'
services:
# wurstmeister/zookeeper:3.4.6
zookeeper:
hostname: zookeeper
container_name: zookeeper
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
# wurstmeister/kafka:2.13-2.8.1
kafka:
hostname: kafka
container_name: kafka
image: wurstmeister/kafka:2.13-2.8.1
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:1:1"
ports:
- "9092:9092"
depends_on:
- zookeeper
도커 컴포즈 실행
docker-compose up -d
도커 컨테이너 실행상태 확인
docker ps
카프카 컨테이너 실행
docker exec -it kafka bash
카프카 토픽 리스트 확인
kafka-topics.sh --list --bootstrap-server kafka:9092
카프카 test 토픽 삭제
kafka-topics.sh --delete --bootstrap-server kafka:9092 --topic test
카프카 토픽 리스트 확인
kafka-topics.sh --list --bootstrap-server kafka:9092
test 라는 이름을 가진 토픽을 지웠고,
test 라는 이름을 가진 토픽을 다시 생성해보자
kafka-topics --create --bootstrap-server kafka:9092 --replication-factor 1 --partitions 1 --topic test
토픽 리스트를 조회해보자
kafka-topics.sh --list --bootstrap-server kafka:9092
test 라는 토픽이 생성된 것을 확인할 수 있다.
이번에는 test 라는 토픽에 데이터를 넣어보자
kafka-console-producer.sh --bootstrap-server kafka:9092 --topic test
a 부터 h 까지 데이터를 넣어보자
a
b
c
d
e
f
g
h
컨트롤+C를 눌러서 빠져나오자
Ctrl+C
이번에는 test 토픽에 들어간 데이터를 조회해보자
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test
아무리 기다려도 입력한 메세지가 나오지 않는다.
그것은 카프카 토픽의 처음부터 읽지 않아서인데,
다음 명령어로 test 토픽의 데이터를 처음부터 읽어보자
먼저 컨트롤+C로 빠져나오자
명령어 입력
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test --from-beginning
제대로 나오는것을 확인할 수 있다.
컨트롤+C로 빠져나오자
이번에는 실시간으로 메세지를 입력하고 실시간으로 데이터를 확인해보자
메세지를 입력하는 것은 프로듀서로 하고 메세지를 조회하는 것은 컨슈머로 조회한다
먼저 커맨드창을 두개 열어서 둘다 카프카 컨테이너에 접속하자
두 명령창을 열었으면 왼쪽은 프로듀서를 실행시키고
오른쪽은 컨슈머를 실행시키자
먼저 왼쪽에 아래 명령어를 입력한다
kafka-console-producer.sh --bootstrap-server kafka:9092 --topic test
오른쪽에는 컨슈머를 실행한다
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test
왼쪽은 프로듀서고 오른쪽은 컨슈머다.
왼쪽에 a를 세번 입력해보자
이번엔 b를 두번 c를 세번 입력해보자
입력과 실시간으로 출력이 되는 것을 확인할 수 있다.
총 몇개의 메세지가 토픽에 있는지 확인하기위해 두개의 명령창에 컨트롤+C를 해보자
왼쪽 명령창에 test 라는 토픽의 메세지를 처음부터 조회해보자
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test --from-beginning
맨 처음에 입력했던 것과 지금 입력한 모든 메세지가 조회된다.
이번에는 왼쪽 명령창에 컨트롤+C로 빠져나와보자
맨 처음에 입력한 a~h 메세지 8개 + 지금 입력한 a 3개, b 2개, c 3개 총 16개의 메세지가 있는 것을 확인할 수 있다.
'Data Engineering > Kafka' 카테고리의 다른 글
[Zookeeper] Zookeeper Cluster (docker-compose) (0) | 2022.06.08 |
---|---|
[kafka] 카프카 클러스터 만드는 방법 (0) | 2022.01.31 |
[kafka] 카프카 클러스터를 GUI(kafdrop)으로 구축하기 (0) | 2022.01.30 |
[kafka] 주키퍼 카프카를 도커컴포즈로 구축하는 방법 (0) | 2022.01.30 |
[kafka] 주키퍼에서 카프카 토픽 확인하는 방법 (0) | 2021.12.26 |