지난 포스트에서 Kafka architecture 및 개요에 대해 알아보았다.
☞ 빅 데이터 처리를 위한 아파치 Kafka 개요 및 설명 포스팅
이번 포스트에서는 kafka architecture의 Producer 내부 데이터 흐름에 대해 알아보려고 한다.
Kafka Producer 데이터 내부 처리 순서
#1 : User application thread에서 Record 추가
#2 : Record Batch단위로 Record를 압축
#3 : 복수의 Record Batch를 묶어 Broker로 보냄
#4 : Record Batch를 각 Partition에 저장
#5 : 지정시간에 request 에 대한 완료(ack)를 회신
- acks=0 : ack 응답없음(속도가장빠름, 데이터유실확률 가장 높음)
- acks=1 : Leader Replica writer 완료시 회신, follower는 확인하지 않음(속도 중간, 데이터유실확률 중간)
- acks=all(-1) : 최소 ISR(In-sync replicas)수까지 복제 완료시 회신(속도 가장 낮음, 데이터 유실확률 아주 낮음)
Kafka Producer 튜닝 파라미터
#A : 메모리사용량
- buffer.memory=64MB
#B : Record Batch size & 압축
- batch.size=16KB
- compression.type=none ('gzip', 'snappy', 'lz4')
#C : Request size
- max.request.size=1MB
- acks=1
#D : Request connection
- linger.ms=0ms(데이터 축적 최대 대기 시간)
- max.in.flight.requests.per.connection=5
- send.buffer.bytes=128kb
'빅데이터 > Kafka' 카테고리의 다른 글
Kafka broker와 java client의 버젼 하위호환성 정리 (390) | 2019.02.14 |
---|---|
Apache Kafka에서 topic의 partition 개수 줄이는 방법? (268) | 2018.12.26 |
아파치 Kafka Consumer의 데이터 처리 내부 architecture 설명 및 튜닝포인트 (369) | 2018.12.24 |
빅 데이터 처리를 위한 아파치 Kafka 개요 및 설명 (259) | 2018.12.24 |
Spring boot에서 kafka 사용시 application.yaml 설정 (578) | 2018.11.06 |
Spring boot scheduler를 활용한 kafka producer/consumer 예제 (580) | 2018.11.06 |