[Kafka] Kafka Consumers

이재민·2024년 1월 28일
0

Kafka

목록 보기
5/17

Kafka Consumers

Kafka Consumers란 하나 이상의 Kafka Topic에서 이벤트 데이터를 가져오는 애플리케이션을 말합니다.

Consumers는 Apache Kafka에서 한 번에 하나 이상의 파티션에서 데이터를 읽을 수 있으며, 데이터는 아래와 같이 각 파티션 내에서 순서대로 읽혀집니다.

  • Consumer는 항상 낮은 offset에서 높은 offset으로 데이터를 읽으며 데이터를 거꾸로 읽을 수 없습니다.
  • Consumer가 둘 이상의 파티션에서 데이터를 사용하는 경우 동시에 사용되기 때문에 여러 파티션에서 메시지 순서가 보장되지 않지만 각 개별 파티션에서는 메시지 읽기 순서가 보장됩니다.
  • Kafka Consumer는 “Pull Model”을 구현하는 것으로 알려져 있습니다. 이는 Kafka Consumer가 Kafka 브로커에서 데이터를 가져오려면 Kafka 브로커로부터 데이터를 요청해야 함을 의미합니다. 이러한 구현 방식은 Consumer가 Topic이 소비되는 속도를 제어할 수 있도록 만들어졌습니다.

Kafka Message Deserializers

  • Serialization & Deserialization

    • 사용되는 데이터는 직렬화된 것과 동일한 형식으로 역직렬화되어야 합니다.
  • Kafka Producer가 보낸 데이터는 직렬화됩니다. 이는 Kafka Consumer가 수신한 데이터가 애플리케이션 내에서 유용하려면 올바르게 역직렬화되어야 함을 의미합니다.

  • Producer가 StringSerializer를 이용하여 String으로 직렬화한 경우 Consumer는 StringDeserializer를 이용해서 역직렬화해야 합니다.

  • Topic 생명 주기 동안 직렬화 및 역직렬화의 형식을 변경해서는 안됩니다.
    Topic 데이터 형식을 전환하려는 경우 새로운 Topic을 생성하고 애플리케이션을 마이그레이션하여 해당 새로운 Topic을 활용하는 것이 좋습니다.

profile
문제 해결과 개선 과제를 수행하며 성장을 추구하는 것을 좋아합니다.

0개의 댓글