PRESENT

[1] Kafka란 : 개념 | 구조 | 용어 본문

Data Engineering/Kafka

[1] Kafka란 : 개념 | 구조 | 용어

by cijbest 2025. 4. 12. 22:51
반응형

🏄‍♀️ Kafka란

대용량 데이터를 빠르고 안정적으로 처리할 수 있는 분산형 이벤트 스트리밍 플랫폼.

* 분산형 : 여러 서버에 나누어 처리한다는 의미.

* 스트리밍 플랫폼 : 데이터를 실시간으로 주고받는 시스템.

 

 

 

🎏 Kafka의 기본 데이터 흐름

Producer → Topic → Consumer

(Producer가 데이터를 특정 Topic에 보내면, Broker가 데이터를 Partition에 저장하고, Consumer가 구독해서 가지고 간다)


예) 웹 사이트 방문 등의 사용자 이벤트가 발생하면 Producer가 Record(로그데이터)를 만든다 → Record는 Topic에 순서대로 저장된다 → Consumer가 Topic을 구독해서 실시간 분석 시스템 또는 저장소로 전송한다

 

 

 

🧩  Kafka 구조

Producer 데이터를 Kafka로 보내는 역할.
Broker Kafka 서버 자체를 의미하며, 데이터를 저장하고 전달하는 서버.
    🔹Kafka Cluster : 여러 개의 Broker를 묶은 것.
Topic 데이터를 저장하는 논리적인 공간.
    🔹하나의 Topic 안에는 여러 개의 Partition이 존재.
Partition Topic을 여러 개의 분할된 단위로 나눈 것.
    🔹하나의 Partition 내에서는 메시지 순서 보장.
    🔹각 Partition은 여러 서버(Broker)에 분산 저장되어 병렬 처리 가능. (Default : 자동 처리)
    🔹각 Partition은 여러 서버(Broker)에 복제 저장되어 장애에 대비. (Default : 자동 처리)
Consumer 데이터를 읽는 역할.
    🔹특정 Topic을 Subscribe(구독)해서 메시지를 가져옴.
    🔹Consumer Group : 다수의 Consumer가 같은 Topic을 나누어 읽도록 하는 기능.
        ▪️그룹 내의 각 Consumer가 특정 Partition을 나누어 처리하며.
        ▪️처리된 메시지는 한 번만 소비되므로 같은 그룹에 속한 Consumer들은 중복 데이터를 받지 않음.
        ▪️그룹 내 Consumer 수 ≤ Partition 수 (효과적)
Zookeeper Kafka의 메타데이터를 관리하고 Broker를 모니터링하는 역할. (Kafka 클러스터 관리)
    🔹Broker 상태 관리, Partition 리더 할당, Consumer Group 정보 저장.
    🔹Kafka 2.9부터 KRaft(Kafka Raft) 모드를 지원하여 Zookeeper 없이 운영 가능.
Record Topic의 기본 데이터 단위.
    🔹Key-Value 쌍으로 구성.
    🔹Timestamp, Offset, Headers(선택) 포함.
        ▪️Timestamp : Record가 생성된 시간 또는 특정 이벤트 발생 시간.
        ▪️Offset : Partition 내에서 메시지의 순서를 기록.
        ▪️Headers : 메타데이터를 저장. (메시지 타입, 형식 등)

 

 

 

🧩 Kafka 사용용도

실시간 데이터 처리나 분석용으로 사용.

Lyft, Spotify, Netflix, Cloudflare가 사용 중.

 

 

 

🧩 Kafka 장점

가장 최신 메세지를 큐처럼 읽을 수 있고, 전체 로그를 읽으면서 실시간 업데이트되는 로그를 받을 수도 있다.

데이터가 Consumer에게 도달하기 전에 가공하거나 집계할 수 있는 강력한 Stream API도 제공한다.

🔸Stream API : 단순 필터링 작업(Stateless, 상태 없는 처리)과 시간 범위 내 집계(Stateful, 상태 기반 처리)를 처리.

반응형

'Data Engineering > Kafka' 카테고리의 다른 글

[2] Kafka 설치 : Docker 이용  (0) 2025.04.14