리눅스/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