Kafka는 Apache Software Foundation에서 개발한 오픈소스 분산 이벤트 스트리밍 플랫폼으로, 대규모 데이터 처리를 위해 설계되었습니다. 주로 실시간 데이터 스트리밍, 로그 처리, 이벤트 기반 애플리케이션 등에 사용됩니다.
주요 특징
- 분산 시스템
Kafka는 여러 서버로 구성된 클러스터로 동작하며, 데이터를 분산 처리하여 높은 가용성과 확장성을 제공합니다. - 퍼블리셔-구독자 모델 (Pub/Sub)
데이터는 생산자(Producer)가 주제를 통해 Kafka로 전송하고, 소비자(Consumer)가 해당 데이터를 구독하여 처리합니다. - 높은 처리량
초당 수백만 건의 메시지를 처리할 수 있으며, 실시간 대규모 데이터 처리에 적합합니다. - 내구성 및 안정성
데이터를 디스크에 저장하고, 복제를 통해 데이터 손실 위험을 최소화합니다. - 확장성
클러스터에 새로운 브로커를 추가하여 쉽게 확장할 수 있습니다.
Kafka의 구성 요소
- Topic (토픽)
데이터를 구분하는 논리적인 채널입니다.
예: payment-transactions, user-logs. - Producer (생산자)
데이터를 토픽에 게시하는 역할을 합니다. - Consumer (소비자)
토픽에서 데이터를 읽어오는 역할을 합니다. - Broker (브로커)
데이터를 저장하고 전달하는 Kafka 서버입니다. - Partition (파티션)
토픽을 물리적으로 분할하여 데이터를 저장하고 분산 처리 성능을 향상시킵니다. - Zookeeper
Kafka 클러스터의 상태를 관리하고 노드 간 동기화를 지원합니다.
(Kafka 2.8.0부터 Zookeeper 없이도 작동 가능하도록 KRaft(Kafka Raft)로 전환 중)
Kafka의 주요 활용 사례
- 실시간 로그 수집 및 처리
애플리케이션 또는 시스템 로그 데이터를 실시간으로 수집하여 분석. - 실시간 데이터 스트리밍
금융 거래, IoT 센서 데이터, 소셜 미디어 활동 등을 실시간으로 처리. - 메시지 브로커
비동기 애플리케이션 간 데이터 전송. - 데이터 파이프라인
다양한 소스에서 데이터를 수집하고 데이터베이스 또는 데이터 웨어하우스에 저장.
Kafka는 Netflix, LinkedIn, Uber와 같은 대규모 서비스를 운영하는 회사들에서 실시간 데이터 처리를 위해 널리 사용되고 있습니다.
'KAFKA' 카테고리의 다른 글
Kafka 설치 방법 (0) | 2025.01.21 |
---|---|
APACHE KAFKA 데이타마이그래이션 작업(102) (0) | 2019.10.31 |