카프카/Kakfa Topic, Producer, Consumer

Producer의 객체 직렬화(Serializer) 전송의 이해

webmaster 2025. 7. 18. 20:38
728x90

Producer와 Cunsumer 간의 Serialized Message 전송

  • Producer가 메시지(객체)를 Serializer하여, Byte Array 형식으로 Broker에 전송
  • Consumer가 Byte Array를 받아서 Deseializer를 통해, 메시지(객체) 형태로 변환

자바 객체의 Serialization

  • 객체를 객체의 유형, 데이터의 포맷, 적용 시스템에 상관없이 이동/저장/복원을 자유롭게 하기 위해서 바이트 배열 형태로 저장하는 것
  • 객체는 Serialization과 Deserialization을 통해서 System to System 또는 서로 다른 저장 영역에 이동/저장/복원을 자유롭게 수행한다.
  • Serialization을 통해서 객체가 바이트 스트림으로 변환되어 네트워크를 통해 손쉽게 데이터를 전송할 수 있으며 Deserialization을 통해서 바이트 스트림은 다시 원본 객체로 변환되어 자유로운 객체 데이터 이동 수행.

참고: Kafka-Console-Producer/Consumer 같은 경우에는 기본적으로 StringSerializer를 통해 String -> Byte Array로 변환해 주는 것이지만 java Producer/Consumer Client 같은 경우에는 명시해서 작성해주어야 한다.

Kafka에서 기본적으로 제공하는 Serializer

  • StringSerializer
  • ShortSerializer
  • IntegerSerializer
  • LongSerializer
  • DoubleSerializer
  • BytesSerializer

 

728x90