얼렁뚱땅 스며드는 Data Science

Data Engineering/Kafka

[Kafka] Apache Kafka 초보 3 : 컨슈머 & 역직렬화

Jesip14 2024. 7. 2. 09:49

이 글은 Udemy의 '초보자를 위한 아파치 카프카 강의 v3'를 듣고 정리한 내용이다.

 

컨슈머

  • topic에서 부터 데이터를 읽어옴 (이름으로 구별됨) : pull model
    • kafka 브로커에 데이터 요청, 응답받음
  • 컨슈머는 여러개의 파티션을 읽어올 수 있음
  • 컨슈머는 어떤 브로커(kafka server)에서 읽어올지 알게됨
  • 브로커가 failure면, 컨슈머는 어떻게 recover할지 알 수 있음
  • 데이터는 각 파티션의 offset의 순서대로 읽어옴

 

Consumer Deserializer

  • bytes -> object / data
  • value, key에만 쓰임
  • consumer는 메세지 형식이 어떻게 되어있는지 사전에 알아야 함
  • common deserializers
    • string (+ json)
    • int, float
    • avro
    • protobuf
  • 프로듀서에는 serializer, 컨슈머에는 deserializer 존재
  • topic lifecycle동안에 프로듀서가 전송하는 데이터 타입을 절대 변경하면 안됨 (문제가 생기면 컨슈머 중단)
    • 자료형을 변환하기 위해서는 새로운 토픽 생성 필요