상위: Data Engineering
개요
Apache Kafka는 대용량 실시간 데이터 스트리밍을 위한 분산 메시지 브로커 플랫폼입니다. 높은 처리량(High Throughput)과 낮은 지연시간(Low Latency)을 제공하며, 확장성과 내결함성을 갖춘 이벤트 스트리밍 플랫폼입니다.
핵심 개념
기본 구조
Producer & Consumer
- Kafka Producer — 직렬화·파티셔닝·압축·배칭 포함
- Kafka Consumer — Consumer Group·리밸런싱 포함
예정 (미작성)
- 클러스터 관리: Kafka Cluster, Zookeeper, Controller, Replication
- 성능: Partitioning Strategy, Compression, Batching
- 운영: Monitoring, Performance Metrics
주요 특징
- 높은 처리량: 초당 수백만 건의 메시지 처리 가능
- 확장성: 수평적 확장(Scale-out)을 통한 클러스터 구성
- 내결함성: 데이터 복제(Replication)를 통한 안정성 보장
- 영속성: 디스크 기반 저장으로 데이터 유실 방지
- 실시간 처리: 낮은 지연시간으로 실시간 데이터 스트리밍
Kafka vs 다른 도구
Kafka vs Flink
- Kafka: 메시지 브로커, 데이터 저장 및 전달에 특화
- Flink: 스트림 처리 엔진, 실시간 데이터 변환 및 분석에 특화
- 통합: Kafka를 데이터 소스로, Flink를 처리 엔진으로 함께 사용
Kafka vs Spark Streaming
- Kafka: 이벤트 단위 실시간 스트리밍
- Spark Streaming: 마이크로 배치 기반 준실시간 처리
- 통합: Kafka를 데이터 파이프라인으로, Spark를 배치 처리로 사용