본문 바로가기
스터디/Kafka

Kafka 기본 개념 및 의미

by zoodi 2025. 1. 3.
728x90

목차

     

     

     

    1. Kafka 란

     

     

     

    데이터 파이프라인(Data Pipeline)을 구축할 때 가장 많이 고려되는 시스템 중 하나가 '카프카(Kafka)’ 이다.
    아파치 카프카(Apache Kafka)링크드인(LinkedIn)에서 처음 개발된 분산 메시징 시스템이다.
    카프카는 분산 스트리밍 플랫폼으로 대용량의 실시간 로그처리에 특화되어 있는 솔루션이다.
    데이터를 유실없이 안전하게 전달하는 것이 주목적이다.
    클러스터링이 가능하므로 Fault-Tolerant한 안정적인 아키텍처와 빠른 퍼포먼스로 데이터를 처리한다.
    Pub-sub 모델의 메시지 큐 구조이다.

     

    2. Kafka 특징

    Publisher Subscriber 모델
    Publisher Subscriber 모델은 데이터 큐를 중간에 두고 서로 간 독립적으로 데이터를 생산하고 소비한다. 이런 느슨한 결합을 통해 PublisherSubscriber가 죽을 시, 서로 간에 의존성이 없으므로 안정적으로 데이터를 처리할 수 있다. 또한 설정 역시 간단하게 할 수 있다는 장점이 있다.

     
    고가용성(High availability) + 확장성(Scalability) 
    카프카는 클러스터로서 작동합니다. 클러스터로서 작동하므로 Fault-tolerant 한 고가용성 서비스를 제공할 수 있고 분산 처리를 통해 빠른 데이터 처리를 가능하게 한다. 또한 서버를 수평적으로 늘려 안정성 및 성능을 향상시키는 Scale-out이 가능하다.

     

    디스크 순차 저장 및 처리(Sequential Store and Process in Disk)
    메세지를 메모리 큐에 적재하는 기존 메세지 시스템과 다르게 카프카는 메세지를 디스크에 순차적으로 저장합니다. 이로서 얻는 이점은 두 가지가있다.
     

    1. 서버에 장애가 나도 메세지가 디스크에 저장되어 있으므로 유실걱정이 없다.

    2. 디스크가 순차적으로 저장되어 있으므로 디스크 I/O가 줄어들어 성능이 빨라진다.

     

    분산 처리(Distributed Processing)
    카프카는 파티션(Partition)이란 개념을 도입하여 여러 개의 파티션을 서버들에 분산시켜 나누어 처리할 수 있다.
    이로서 메세지를 상황에 맞추어 빠르게 처리할 수 있다.

     

     

     

    3. 메시징 시스템이란

    로그 데이터, 이벤트 메시지 등 API로 호출할 때 모내는 데이터들을 처리하는 시스템

     

    • 데이터 단위 : 메시지 (로그 데이터, 이벤트 메시지 등)
    • 데이터 보내는 측 : Publisher, Producer
    • 데이터 가져가는 측 : Subscriber, Consumer
    • 데이터 저장소 : Topic
    728x90

    댓글