카프카/Kakfa Topic, Producer, Consumer

Consumer Group과 Consumer

webmaster 2025. 8. 4. 22:48
728x90

Consumer Group과 Consumer

Consumer Group 내에 1개의 Consumer 만 있을 경우
Consumer Group 내에 2개의 Consumer가 있지만 토픽 파티션 개수보다 작을 경우
Consumer Group 내에 파티션 개수와 동일한 Consumer가 있을 경우
Consumer Group 내에 파티션 개수보다 많은 Consumer가 있을 경우

  • 모든 Consumer들은 단 하나의 Consumer Group에 소속되어야 하며, Consumer Groupdms 1개 이상의 Consumer를 가질 수 있다.
  • 파티션의 레코드들은 단 하나의 Consumer에만 할당
  • Consumer Group 내에 Consumer 변화가 있을 시마다 파티션과 Consumer의 조합을 변경하는 Rebalancing 발생
  • 하나의 Partition은 반드시 하나의 Consumer에만 할당이 된다(많다고, 여러 Consumer에 할당되는 것이 아니다.)
    • 그림 4번 같은 경우 Consumer#4은 놀 수밖에 없다.

Consumer Group

하나의 토픽을 여러 개의 Consumer Group이 Subscribe 할 경우

  • 모든 Consumer들은 단 하나의 Consumer Group에 소속되어야 하며, Consumer Group은 1개 이상의 Consumer를 가질 수 있다.
  • 파티션의 레코드들은 단 하나의 Consumer에만 할당한다.

실습

1. Topic 생성(Partition 3)

 kafka-topics --bootstrap-server localhost:9092 --create --topic multipart-topic --partitions 3

2. Consumer Group id group_01을 가지는 Consumer를 3개 생성

kafka-console-consumer --bootstrap-server localhost:9092 --group group_01 --topic multipart-topic \
--property print.key=true --property print.value=true \
--property print.partition=true

Rebalancing 로그

3. Group_01 Consumer 죽이기

 

728x90