Kafka는 Apache Software Foundation에서 개발한 오픈소스 분산 이벤트 스트리밍 플랫폼으로, 대규모 데이터 처리를 위해 설계되었습니다. 주로 실시간 데이터 스트리밍, 로그 처리, 이벤트 기반 애플리케이션 등에 사용됩니다.

주요 특징

  1. 분산 시스템
    Kafka는 여러 서버로 구성된 클러스터로 동작하며, 데이터를 분산 처리하여 높은 가용성과 확장성을 제공합니다.
  2. 퍼블리셔-구독자 모델 (Pub/Sub)
    데이터는 생산자(Producer)가 주제를 통해 Kafka로 전송하고, 소비자(Consumer)가 해당 데이터를 구독하여 처리합니다.
  3. 높은 처리량
    초당 수백만 건의 메시지를 처리할 수 있으며, 실시간 대규모 데이터 처리에 적합합니다.
  4. 내구성 및 안정성
    데이터를 디스크에 저장하고, 복제를 통해 데이터 손실 위험을 최소화합니다.
  5. 확장성
    클러스터에 새로운 브로커를 추가하여 쉽게 확장할 수 있습니다.

Kafka의 구성 요소

  1. Topic (토픽)
    데이터를 구분하는 논리적인 채널입니다.
    예: payment-transactions, user-logs.
  2. Producer (생산자)
    데이터를 토픽에 게시하는 역할을 합니다.
  3. Consumer (소비자)
    토픽에서 데이터를 읽어오는 역할을 합니다.
  4. Broker (브로커)
    데이터를 저장하고 전달하는 Kafka 서버입니다.
  5. Partition (파티션)
    토픽을 물리적으로 분할하여 데이터를 저장하고 분산 처리 성능을 향상시킵니다.
  6. Zookeeper
    Kafka 클러스터의 상태를 관리하고 노드 간 동기화를 지원합니다.
    (Kafka 2.8.0부터 Zookeeper 없이도 작동 가능하도록 KRaft(Kafka Raft)로 전환 중)

Kafka의 주요 활용 사례

  1. 실시간 로그 수집 및 처리
    애플리케이션 또는 시스템 로그 데이터를 실시간으로 수집하여 분석.
  2. 실시간 데이터 스트리밍
    금융 거래, IoT 센서 데이터, 소셜 미디어 활동 등을 실시간으로 처리.
  3. 메시지 브로커
    비동기 애플리케이션 간 데이터 전송.
  4. 데이터 파이프라인
    다양한 소스에서 데이터를 수집하고 데이터베이스 또는 데이터 웨어하우스에 저장.

Kafka는 Netflix, LinkedIn, Uber와 같은 대규모 서비스를 운영하는 회사들에서 실시간 데이터 처리를 위해 널리 사용되고 있습니다.

rcv_info_to_kafka.cs
0.00MB

'KAFKA' 카테고리의 다른 글

Kafka 설치 방법  (0) 2025.01.21
APACHE KAFKA 데이타마이그래이션 작업(102)  (0) 2019.10.31

+ Recent posts