리눅스/kafka
kafka consumer fetcher
정지홍
2024. 10. 18. 14:24
Kafka Consumer의 fetch 동작이란?
- consumer가 kafka cluster에서 메시지를 가져오는 과정
- pull-based 방식으로 동작
- consumer는 필요할때 서버에서 데이터를 가져오는 것이 가능.
- 즉, 데이터를 가져오는 요정은 fetch이며, 이를 서버에 보낸다.
- 요청에 대한 응답으로 메시지를 받는다.
Kafka Consumer의 Fetch 동작 개요
- Fetch Request
- consumer는 broker에게 fetch 요청을 보냄.
- 이것에는 특정 파티션에서 읽을 오프셋이 포함되며, 컨슈머가 읽을 준비가 된 메시지들의 요청을 의미
- Data Fetching
- broker가 요청을 받으면, consumer가 지정한 offset에서 메시지 읽음
- broker는 batch단위로 메시지를 리턴
- Fetch Response
- broker는 메시지를 consumer에게 전송
- consumer는 이를 local memory buffer에 저장한다
- 그리고 consumer는 자신이 처리한 메시지의 오프셋을 기록 및 관리 해야함.
주요 파라미터
- fetch.min.bytes
- consumer가 date를 가져오기전에, broker가 보낼 데이터의 최소 크기
- default는 1bytes
- fetch.max.wait.ms
- consumer가 얼마나 응답을 기다릴지 지정
- default는 500ms
- fetch.max.bytes
- consumer가 한번의 fetch에 받을수있는 최대 바이트 수
- default는 50MB
- max.partition.fetch.bytes
- 파티션당 한 번의 fetch요청에서 가져올 수 있는 최대 바이트 수를 설정
- max.poll.records
- fetcher가 한번에 가져올수있는 레코드수.
- default는 500