Post

Kafka Producer 에러 유형과 대응

Kafka Producer 에러를 재시도 가능/불가로 나눠 운영 대응 전략을 정리합니다.

Kafka Producer 에러 유형과 대응

Producer 에러는 “재시도하면 회복되는가”를 기준으로 구분해야 운영 대응이 단순해진다. 이 기준이 없으면 모든 실패를 같은 방식으로 처리하게 되어 장애가 길어진다.

1) 재시도 가능한 에러

일시적인 인프라 상태 변화로 발생하는 에러다.

  • 네트워크 일시 단절
  • 리더 브로커 변경 직후 메타데이터 불일치
  • 타임아웃성 실패

이 경우는 retries, retry.backoff.ms, delivery.timeout.ms를 조합해 회복 가능성을 확보한다.

2) 재시도 불가능한 에러

메시지나 설정 자체가 제약을 위반한 경우다.

  • RecordTooLargeException
  • 직렬화 실패
  • 권한/토픽 설정 오류

이 유형은 재시도로 해결되지 않는다. 원인 데이터를 격리(DLQ)하고, 스키마/설정 수정을 선행해야 한다.

대응 정책을 분리해야 하는 이유

모든 에러를 무조건 재시도하면 큐 적체와 지연이 커지고, 실제 복구가 필요한 실패를 놓치기 쉽다.

권장 전략:

  • 재시도 가능: 지수 백오프 기반 자동 재시도
  • 재시도 불가: 즉시 실패 처리 + 경고 알림 + 원인 데이터 보관

실무 체크포인트

  • 에러 로그에 topic/partition/key/exception class를 함께 남긴다.
  • 프로듀서 재시도율과 최종 실패율을 분리 모니터링한다.
  • DLQ에 쌓인 데이터를 주기적으로 분류해 “데이터 문제”와 “설정 문제”를 나눈다.
This post is licensed under CC BY 4.0 by the author.