티스토리 뷰

728x90

아래의 그림처럼 consumer-group이라는 #컨슈머그룹을 만들고 여러 컨슈머를 생성하는 방법을 알아보자.

 

1️⃣ topic 생성하기

kafka-topics.sh --bootstrap-server localhost:9092 --topic test_topic --create --partitions 5

create kafka topic

2️⃣ 하나의 consumer로 시작하기

- #옵션 : --group

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --group consumer-group

3️⃣ 하나의 producer 시작

# kafka-console-producer.sh --bootstrap-server localhost:9092 
--producer-property partitioner.class=org.apache.kafka.clients.producer.RoundRobinPartitioner 
--topic test_topic

좌 : producer 우 : consumer

4️⃣ comsumer 추가

 - 위 2️⃣ 명령어와 동일

 - 추가 후 producer가 데이터를 쓰면 아래와 같이 2개의 컨슈머가 데이터를 소비하는 걸 볼 수 있다.

kafka-console-consumer.sh 
--bootstrap-server localhost:9092 
--topic test_topic 
--group consumer-group

좌 : consumer1 우 : consumer2

✨ partition 3 consumer 4 인경우 하나의 consumer는 데이터를 읽어 올 수 없다

 

5️⃣ consumer group 확인하기

kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

6️⃣ consumer group 상세보기

* LAG는 현재 소비되지 않은 데이터의 수를 나타나는데 현재는 0으로 모든 데이터를 소비했다는 뜻이다.

* 데이터를 다시 3개 producing 하면 아래처럼 LAG 변경 된 걸 알 수 있다.

⚠️ consumer group을 지정하지 않고 데이터를 읽는 경우 임시 consumer group 이 생성된다.

1) consumer group을 지정하지 않고 test_topic의 데이터를 처음부터 읽어온다.

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning

2) consumer group의 list를 확인하면 아래처럼 임시 consumer group인 console-consumer-65141이 생성 된 걸 확인 할 수 있다

kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

consumer group list

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함