Post

Apache Kafka 입문

대량의 queries per second(QPS)를 처리하기 위해, 비동기 작업 관리 및 폭발적인 요청 처리 기술이 필요하다고 한다. 그리고 Kafka 같은 Message Broker가 그 중 하나라고 한다.

일단 개념을 이해하기 위해 영상을 찾아봤다.

System Design: Apache Kafka In 3 Minutes

  • Kafka는 데이터 생성자(Producer)로부터 데이터를 전달 받아, 데이터 소비자(Consumer)한테 제공한다.
  • 실시간 스트리밍, 대량 프래픽에 유리하다.

System Design: Why is Kafka fast?

  • 대량의 데이터를 효율적으로 전달하는데 유리하다.
  • 빠르게 하는 디자인
    1. Sequencial I/O Random 접근이 아닌 Sequencial 접근으로 읽고 쓰기 빠르게 함
      Append Only

    2. 데이터 이동 전략 Read with zero copy Direct Memory Access(DMA) 활용

3. Apache Kafka Fundamentals | Apache Kafka Fundamentals

  • 구성
    • Producer: 데이터 생성자
    • Kafka Brokers: 데이터 전달자
    • Consumer: 데이터 소비자
    • ZooKeeper: Kafka Brokers 관리
  • Decoupling Producers and Consumers
    • 모두 서로 신경 안 쓰고 독립적
  • ZooKeeper 역할
    • Broker가 죽으면 어떻게 처리하는지 관리 등
  • Topic, Partition, Segment
    • Topic: 데이터 주제 단위
    • Partition: Topic을 나눈거
    • Segment: Partition을 나눈거
  • Log란
    • “Immutable records of things and write to a log at the very end”
  • Data Elements
    • Header, Key, Value, timestamp

Next: Apache Kafka 실습

This post is licensed under CC BY 4.0 by the author.