[More Kafka]3-3. 카프카 프로듀서 옵션

[More Kafka]3-3. 카프카 프로듀서 옵션


Kafka producer 옵션

메세지 순서 보장을 위한 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로 준다.