Consumer의 주요 메커니즘 개요
Kafka Consumer 개요
- 브로커의 Topic 메시지를 읽는 역할을 수행한다.
- 모든 Consumer들은 고유한 그룹아이디 (group.id)를 가지는 Consumer Group에 소속되어야 한다.
- 개별 Consumer Group 내에서 여러 개의 Consumer들은 토픽 파티션 별로 분배된다.
Consumer의 subscribe, poll, commit 로직
- Consumer는 subscribe()를 호출하여 읽어 들이려는 토픽을 등록
- Consumer는 poll() 메서드를 이용하여 주기적으로 브로커의 토픽 파티션에서 메시지를 가져온다.
- 메시지를 성공적으로 가져왔으면 commit을 통해서 __consumer_offsets에 다음에 읽을 offset 위치를 기재한다.
Kafka Consumer의 주요 수행 개요
- Kafka Consumer는 Fetcher, ConsumerClientNetwork 등의 주요 내부 객체와 별도의 Heart Beat Thread를 생성한다.
- Fetch, ConsumerClientNetwork 객체는 브로커의 토픽 파티션에서 메시지를 Fetch 및 Poll 수행
- Heart Beat Thread는 Consumer의 정상적인 활동을 Group Coordinator에 보고하는 역할을 수행한다. (Group Coordinator는 주어진 시간동안 Heart Beat을 받지 못하면 Consumer들의 Rebalance를 수행 명령한다)
'kafka > core' 카테고리의 다른 글
Consumer Fetcher 관련 주요 파라미터와 Fetcher 메커니즘 이해 (0) | 2025.05.15 |
---|---|
Kafka Consumer 클래스의 주요 구성 요소와 poll() 메서드 동작 메커니즘 이해 (0) | 2025.05.14 |
최대 한번 전송, 적어도 한번 전송, 정확히 한번 전송 (0) | 2025.05.12 |
Producer의 max.inflight.requests.per.connection 파라미터와 배치 메시지의 전송 순서 이해 (0) | 2025.05.06 |
Producer의 전송/재전송 내부 메커니즘 및 전송 동작 관련 주요 파라미터의 이해 (0) | 2025.05.05 |
댓글