백구의 코딩찌개
  • [KAFKA] 카프카 간단하게 알아보기. 카프카란 무엇인가?
    2024년 07월 15일 14시 11분 09초에 업로드 된 글입니다.
    작성자: 코딩백구
    반응형

    Kafka란?


    • Kafka는 분산형 데이터 스트리밍 플랫폼으로, 대량의 데이터를 안정적이고 실시간으로 처리할 수 있도록 설계되었습니다.
    • Kafka는 웹사이트, 어플리케이션, 센서 등에서 취합한 데이터를 스트림 파이프라인을 통해 실시간으로 관리하고 전송하며, 데이터를 생성하는 어플리케이션 (Producer) 과 데이터를 소비하는 어플리케이션 (Consumer) 간의 중재자 역할 (Broker) 을 합니다.

     

     

    , Kafka는 다양한 서비스에서 나오는 데이터 흐름을 실시간으로 제어하는 서비스의 중추 역할을 하는 플랫폼입니다.

     


    등장 배경 - Before Kafka


    Kafka는 비즈니스 소셜 네트워크 서비스 플랫폼인 LinkedIn 에서 설계한 시스템으로, 어플리케이션이 늘어남에 따라 발생하는 기존 데이터 시스템의 문제점을 극복하기 위해 등장한 메시징 시스템입니다.

     

    기존 데이터 시스템의 문제점

    • 각 어플리케이션과 DB가 end-to-end 로 연결되어 있어 요구 사항이 늘어남에 따라 시스템 복잡도가 높아졌고, 다음과 같은 문제들이 발생.

     

    1. 통합된 전송 영역이 없어 데이터 흐름 파악 및 시스템 관리가 어려움
    2. 장애 발생 시 연결 되어있는 어플리케이션을 모두 확인해야 하기에 조치 시간 증가
    3. 어플리케이션이 늘어나면서 데이터 파이프라인이 증가하고, 파이프라인마다 데이터 포맷과 처리 방식이 다름
    4. 새로운 파이프라인의 확장성 및 유연성 저하

     

     

     


    등장배경 -After Kafka


     

     

    1. Kafka 도입으로 인해 모든 이벤트/데이터의 흐름을 중앙에서 관리할 수 있게 됨
    2. 새로운 서비스가 추가되어도 Kafka를 통해 연결하면 되므로 확장성 및 신뢰성이 증가
    3. 개발자는 각 서비스 간의 연결이 아닌 비즈니스 로직에 집중 가능

     

     

     

     

     

     


    Kafka의 특징


    • 높은 처리량과 낮은 지연시간
      • Kafka는 대용량 데이터를 실시간으로 처리할 수 있도록 설계되었다. 따라서 높은 TPS를 가지며,
        실시간 데이터 스트림, 로그 집계 , Event Driven Architecture 구현에 적합하다.
    • 메시지 내구성
      • Kafka의 메시지는 메모리가 아닌 디스크에 보관 주기동안 저장되므로 트래픽이 집중되어
        Consumer
        의 처리가 늦어져도 메시지 손실 우려가 적다.
    • 분산 아키텍쳐
      • 자세한 설명은 추후에 하겠지만, KafkaKafka Cluster 내부에 여러 대의 Broker 를 구성하여
        높은 확장성과 내결함성을 갖는다.
    • Pull 기반 메시지 소비
      • Kafka ConsumerBroker 로부터 능동적으로 메시지를 가져오는 Pull 방식을 취했다.이로 인해 Consumer 는 처리 능력에 따라 메시지를 가져올 수 있기 때문에 안정적인 처리 가능
    반응형

    'Kafka' 카테고리의 다른 글

    [KAFKA] 카프카의 구성요소  (0) 2024.07.16
    댓글