Post

poll() 말고 다른 방법으로 읽기

poll() 말고 다른 방법으로 읽기 주제의 핵심 개념과 적용 포인트를 정리합니다.

poll() 말고 다른 방법으로 읽기

특정 오프셋에서 읽기

기본적으로 Consumer는 커밋된 위치를 기준으로 읽지만, seek 계열 API를 사용하면 읽기 시작점을 직접 옮길 수 있다.

seekToBeginning()

1
consumer.seekToBeginning(partitions);
  • 지정한 파티션의 가장 오래된 메시지부터 다시 읽는다.
  • 전체 재처리, 과거 데이터 검증에 유용하다.

seekToEnd()

1
consumer.seekToEnd(partitions);
  • 지정한 파티션의 최신 위치로 이동한다.
  • 과거 데이터는 건너뛰고 신규 유입만 처리하고 싶을 때 사용한다.

실무 포인트

  • seek 사용 전후 커밋 정책을 함께 점검해야 의도치 않은 중복/누락을 피할 수 있다.
  • 운영 스크립트에서 seek를 사용한다면 대상 파티션과 범위를 명확히 기록하는 것이 좋다.
This post is licensed under CC BY 4.0 by the author.