[AWS] Kafka로 single consumer, multi consumer 구현하기

jake·2022년 11월 10일
0

AWS

목록 보기
3/3

Kafka : 데이터 파이프라인, 스트리밍 분석, 데이터 통합을 위한 오픈 소스 분산 이벤트 스트리밍 플랫폼(distributed event streaming platform)

준비물 : aws 계정, docker 설치파일


1. docker 파일 설치후 터미널 재시작 해야한다. 안그러면 설치 업데이트 미반영 됨. 그 후 single-consumer 파일 설치하면 된다.
이 터미널에서는 데이터 입력을 하는 프로듀서 채널을 열겠다.

docker exec -it producer_host /bin/bash
kafka-console-producer --bootstrap-server kafka1:9091 --topic my-first-topic # kafka1, 포트는 9091 토픽 이름은 my-first-topic


2. 이번에는 데이터 입력을 받는 컨슈머 채널을 열겠다. 새로운 터미널을 실행하자.

docker exec -it consumer_host /bin/bash
kafka-console-consumer --bootstrap-server kafka2:9092 --topic my-first-topic 


3. 이제 프로듀서 채널에서 1, 2, 3을 입력하면 컨슈머 채널에서 1, 2, 3이 출력된다. single-consumer 끝

4. 한글도 입력하면 출력된다.

5. 이제 multi-consumer을 구현해보자. single-consumer을 다운하고 multi-consumer을 실행해보자. 터미널에 다시 프로듀서 채널을 만들고 multi-consumer이기 때문에 파티션과 컨슈머 모두 2개를 만들자.

docker exec -it producer_host /bin/bash
kafka-topics --bootstrap-server kafka1:9091 --replication-factor 2 --partitions 2 --topic second-topic --create
kafka-topics --bootstrap-server kafka1:9091 --topic second-topic --describe
kafka-console-producer --bootstrap-server kafka1:9091 --topic second-topic

터미널을 두개 열고 각각의 터미널에 컨슈머 채널을 만들자.

docker exec -it consumer_host1 /bin/bash
kafka-console-consumer --bootstrap-server kafka1:9091 --topic second-topic --group hey
docker exec -it consumer_host2 /bin/bash
kafka-console-consumer --bootstrap-server kafka1:9091 --topic second-topic --group hey

그 후 프로듀서 채널에서 1, 2, 3, 4, 5, 6, 7, 8, 9를 입력해보자.

6. 첫 번째 컨슈머 채널에서는 2, 3, 7, 8이 출력되었다.


7. 두 번째 컨슈머 채널에서는 1, 4, 5, 6, 9가 출력되었다.

0개의 댓글