PRESENT
[1] Kafka란 : 개념 | 구조 | 용어 본문
반응형
🏄♀️ 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 |
---|