구현: 메시지

구현: 메시지 (Messages)

이 페이지는 Kafka에서 메시지(레코드)가 어떤 형태로 구성되어 있는지 가장 기본적인 부분을 짧게 설명해요. 키와 값을 불투명하게 둔 이유가 인상적인데, 직렬화 라이브러리 선택을 Kafka가 강제하지 않는다는 뜻이에요.

출처: 문서

본문

메시지는 가변 길이 헤더, 가변 길이의 불투명한(opaque) 키 바이트 배열, 그리고 가변 길이의 불투명한 값 바이트 배열로 구성됩니다. 헤더의 형식은 다음 섹션에서 설명합니다. 키와 값을 불투명하게 두는 것은 올바른 결정입니다. 지금 직렬화 라이브러리에서 많은 진전이 이루어지고 있으며, 어떤 특정 선택도 모든 용도에 맞을 가능성이 낮기 때문입니다. 말할 필요도 없이 Kafka를 사용하는 특정 애플리케이션은 사용의 일부로 특정 직렬화 유형을 요구할 가능성이 높습니다. RecordBatch 인터페이스는 단순히 메시지에 대한 이터레이터이며, NIO Channel에 대한 대량 읽기·쓰기용 특수 메서드를 제공합니다.

더 알아보기 (Learn more)

  • 키·값이 불투명하다는 건 직렬화는 온전히 사용자(프로듀서/컨슈머) 책임이라는 뜻이에요.
  • RecordBatch 이터레이터를 통해 레코드 배치 단위로 효율적인 대량 읽기·쓰기가 가능해요.