빅데이터/Kafka

아파치 Kafka Consumer의 데이터 처리 내부 architecture 설명 및 튜닝포인트

AndersonChoi 2018. 12. 24. 17:45

지난 포스트에서 Kafka producer의 데이터 처리 내부 architecture에 대해서 알아보았다.


☞ 아파치 Kafka Producer architecture 설명 포스팅


이번 포스트에서는 kafka architecture의 Consumer 내부 데이터 흐름에 대해 알아보려고 한다.


Kafka Consumer 데이터 내부 처리 순서


#1 : poll(record 취득 api) 호출

#2 : 가져오고자 하는 record가 Fetcher queue에 없는 경우, Fetch request를 발동하여 broker에서부터 record를 가져온다.

#3 : record batch를 Fetcher queue에 저장

#4 : 어디까지 읽었는지에 대한 offset을 consumer측에서 보관

#5 : record batch의 압축을 풀고, record를 user application thread에 반환 


Kafka Consumer 튜닝 파라미터


#A : Fetch Request

   - fetch.min.bytes=1byte

   - max.partition.fetch.bytes=1MB

   - fetch.max.bytes=50MB

   - fetch.wait.max.ms=500ms

   - receive.buffer.bytes=64KB

#B : Offset auto commit

   - enable.auto.commit=true

   - auto.commit.interval.ms=5seconds

#C : Consumer group의 consumer 수 조정(application scale up)



첨부파일 : apache kafka consumer architecture.key