010 Metadata

강의 메모 #

클라이언트 메타데이터와 브로커 통신 #

클라이언트 메타데이터 #

img_1.png

카프카 클라이언트는 통신하고자 하는 리더 파티션의 위치를 알기 위해 데이터를 주고받기 전에 메타데이터를 브로커로부터 전달받는다. 다음과 같은 옵션으로 리프래쉬된다.

  • metadata.max.age.ms : 메타데이터를 강제로 리프래쉬하는 간격 (기본값: 5분)
  • metadata.max.idle.ms : 프로듀서가 유휴상태일 경우 메타데이터를 캐시에 유지하는 기간
    • 프로듀서가 특정 토픽으로 데이터를 보낸 이후 지정한 시간이 지나고나면 강제로 메타데이터를 리프래쉬 (기본값 5분)
  • 리더 파티션이 어디에 위치하고있는지를 받게되는것!

클라이언트 메타데이터가 이슈가 발생한 경우 #

img_2.png

카프카 클라이언트는 반드시 리더 파티션과 통신해야한다. 만약 메타데이터가 현재의 파티션 상태에 맞게 리프래쉬 되지 않은 상태에서 잘못된 브로커에 데이터를 요청하면 READER_NOT_AVAILABLE 익셉션이 발생하게된다. 이 에러가 자주 발생한다면 메타데이터의 리프래쉬 간격을 확인하고 클라이언트가 정상적인 메타데이터를 가지고 잇는지 확인해야한다.