[More Kafka]3-3. 카프카 프로듀서 옵션
Kafka producer 옵션
- 기본적인 옵션에 대해서는 이미 정리한 적이 있다. 아래를 참고
- kafka producer options
메세지 순서 보장을 위한 Producer 옵션
retries
- default 0, 중요도 낮음
- 메세지를 전송하다가 에러가 나는 경우에 몇 번 전송을 시도하는가? 에러가 나는 경우를 예를 들면, 파티션 리더가 없는 경우에 메세지 전송시 에러가 날 수 있다.
retry.backoff.ms
- default 100, 중요도 낮음.
- retries 옵션에서 예를 들어서 3회 전송을 시도한다고 보면, 1회 시도와 2회 시도의 사이의 시간(재 전송 대기시간) 그리고 2회 시도와 3회 시도의 사이의 시간으로 보면 된다.
max.in.flight.requests.per.connection
- default 5, 중요도 낮음.
- 서버의 응답을 무시하고 메세지를 전송하는 수 이다.
순서가 보장되지 않는 시나리오
- retries가 1 이상의 값이며, max.in.flight.requests.per.connection 가 default 이거나 1보다 큰 값에서 발생한다.
- [1,2,3] -> 1에러, 2성공, 1재시도성공, 3성공 -> 2,1,3 이 될 수 있다.
개인적인 해결책(속도보다 신뢰성이 우선인 경우에)
반드시 보내져야 하는 부분이 아니라면 default로 사용하는게 나을 것 같다. 애초에 재 전송의 경우(retries 가 0) 이므로 처리되지 않는 경우에 대해서 에러 반환시 에러처리 하는 부분이 나을 수 있다. 추가로 max.in.flight.requests.per.connection 을 1로 준다.