Kafka Consumer Config

김도비·2022년 10월 23일
0

Kafka

목록 보기
1/5

Apache Kafka 주요 옵션 정리

Consumer

fetch.min.byte

한번에 가져올 수 있는 최소 데이터 사이즈
지정한 크기보다 작다면 데이터가 누적될 때까지 기다림

fetch.max.bytes

한번에 가져올 수 있는 최대 데이터 사이즈

request.timeout.ms

요청에 대해 응답을 기다리는 최대 시간

session.timeout.ms(default : 10sec)

컨슈머가 살아있는 것으로 판단하는 시간
10초 안에 컨슈머가 그룹 코디네이터에게 하트비트를 보내야함
10초를 넘으면 장애로 판단하고 리밸런스를 시도함
세션 타임아웃이 짧다면 가비지 컬렉션이나 poll loop 완료시간이 길어지게 되어 리밸런스가 일어나기도 함.
세션 타임아웃이 길다면 리밸런스보다 실제 오류 탐시 시간이 오래 걸림

heartbeat.interval.ms(default : 3sec)

그룹 코디네이터에게 얼마나 자주 KafkaConsumer poll() 메소드로 하트비트를 보낼지 조정함.
session.timeout.ms과 밀접하며 반드시 session.timeout.ms의 값보다 당연히 작아야 하며 일반적으로 1/3로 설정.

max.poll.records

단일 호출 poll()에 대한 최대 레코드 수를 조정.

max.poll.interval.ms

컨슈머가 하트비트를 주기적으로 보내는데, 하트비트만 보내고 메시지를 가져가지 않은 경우, 무기한 파티션 점유를 막기 위함
즉 컨슈머가 poll()을 호출하지 않으면 장애로 판단하며, 다른 컨슈머에게 메시지를 가져가도록 함.

fetch.max.wait.ms

fetch.min.bytes의 설정 데이터보다 적은 경우 요청에 응답을 기다리는 최대 시간.
fetch.min.bytes는 한번에 가져가는 최대 데이터 사이즈인데 무한정 데이터가 차길 기다릴 수 없으니 시간제약을 준다고 생각하자.

profile
모든 걸 기록하자

0개의 댓글