강의 메모 #
클라이언트 메타데이터와 브로커 통신 #
클라이언트 메타데이터 #
카프카 클라이언트는 통신하고자 하는 리더 파티션의 위치를 알기 위해 데이터를 주고받기 전에 메타데이터를 브로커로부터 전달받는다. 다음과 같은 옵션으로 리프래쉬된다.
- metadata.max.age.ms : 메타데이터를 강제로 리프래쉬하는 간격 (기본값: 5분)
- metadata.max.idle.ms : 프로듀서가 유휴상태일 경우 메타데이터를 캐시에 유지하는 기간
- 프로듀서가 특정 토픽으로 데이터를 보낸 이후 지정한 시간이 지나고나면 강제로 메타데이터를 리프래쉬 (기본값 5분)
- 리더 파티션이 어디에 위치하고있는지를 받게되는것!
클라이언트 메타데이터가 이슈가 발생한 경우 #
카프카 클라이언트는 반드시 리더 파티션과 통신해야한다. 만약 메타데이터가 현재의 파티션 상태에 맞게 리프래쉬 되지 않은 상태에서 잘못된 브로커에 데이터를 요청하면 READER_NOT_AVAILABLE 익셉션이 발생하게된다. 이 에러가 자주 발생한다면 메타데이터의 리프래쉬 간격을 확인하고 클라이언트가 정상적인 메타데이터를 가지고 잇는지 확인해야한다.