ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kafka 기초 - Kafka란?
    Framework & Library/Kafka 2023. 2. 17. 16:14

    Kafka란?

    Kafka(카프카)란?

    Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 제작된 오픈 소스 분산 이벤트 스트리밍 플랫폼이다.

    이벤트 스트리밍이란 인체의 중추 신경계와 같다. 즉, 비즈니스가 더욱 소프트웨어화, 자동화됨에 따라 상시 가동되는 소프트웨어를 사용하는 세상을 위한 기반 기술이다. Kafka의 이벤트 스트리밍은 Fortune 100대 기업의 60% 이상을 포함하여 수많은 산업 및 조직의 다양한 사례에 적용된다.

     

    1. 증권 거래소, 은행 및 보험과 같은 실시간으로 지불 및 금융 거래를 처리

    2. 물류 및 자동차 산업과 같이 자동차, 트럭, 차량 및 선적을 실시간으로 추적하고 모니터링

    3. 공장 및 풍력 발전 단지와 같은 IoT 장치 또는 기타 장비의 센서 데이터를 지속적으로 캡처하고 분석

    4. 소매, 호텔 및 여행 산업, 모바일 애플리케이션과 같은 고객 상호 작용 및 주문을 수집하고 즉시 대응

    5. 병원에서 치료 중인 환자를 모니터링하고 상태 변화를 예측하여 응급 상황에서 시기적절한 치료를 보장

    6. 회사의 여러 부서에서 생성된 데이터를 연결, 저장 및 사용 가능하게 함

    7. 데이터 플랫폼, 이벤트 중심 아키텍처 및 마이크로서비스(MSA)의 기반 역할

     

    이벤트 스트리밍 플랫폼이란?

    Kafka는 세 가지 주요 기능들을 결합하여 end-to-end 이벤트 스트리밍을 구현할 수 있다.

     

    1. 이벤트 스트림을 지속적으로 발행(published-write), 구독(subscribe-read)한다.

    2. 이벤트 스트림을 내구성 있고, 안정적으로 저장(store)한다.

    3. 이벤트 스트림 발생 시 소급하여 처리(process)한다.

     

    그리고 이 모든 기능은 분산되고 확장성이 뛰어나고 탄력적이며, 내결함성이 있으며 안전한 방식으로 제공된다. Kafka는 베어메탈 하드웨어, 가상 머신, 컨테이너, 온프레미스 및 클라우드에 배포가 가능하다. Kafka 환경을 자가 관리하거나 다양한 공급업체에서 제공하는 완전 관리형 서비스를 사용할 수 있다.

     

     베어메탈 : 하드웨어 상에 어떠한 소프트웨어도 설치되어 있지 않은 상태

    ※ 온프레미스 : 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터

     

    Message Queue(메시지 큐)란?

    메시지 지향 미들웨어는 비동기 메시지를 사용하는 각각의 응용 프로그램 사이의 데이터 송수신을 의미하고, 이를 구현한 시스템을 메시지 큐라고 한다. 많이 사용하는 오픈소스 메시지 큐로는 RabbitMQ, ActiveMQ, RedisQueue 등이 있다.

    Kafka는 이벤트 스트리밍 플랫폼으로써, 여러 가지 역할을 할 수 있고, 메시지 큐처럼 메시지 브로커 역할을 할 수 있도록 구현하여 사용할 수도 있으며, 기존 범용 메시지 브로커들과 비교했을 때 아래와 같은 특징을 가진다.

     

    1. 대용량 실시간 로그 처리에 특화되어 TPS가 우수하다.

     

    2. 분산 처리에 효과적으로 설계되어 병렬처리와 확장 및 고가용성에 용이하다.

     

    3. 발행-구독(Publish-Subscribe) 모델이다.

        - 메시지 받기를 원하는 Consumer가 Topic을 구독함으로써 메시지를 읽어오는 구조

        - Broker의 역할이 줄어들기 때문에 좋은 성능을 기대할 수 있음

     

    4. 파일 시스템에 메시지를 저장함으로써 영속성이 보장된다.

        - 데이터 유실 시 복구 가능

        - 메시지가 많이 쌓여도 성능이 크게 저하되지 않음

        - 대규모 처리를 위한 배치 작업에 용이

     

    ※ 메시지 브로커 : 송신자로부터 전달받은 메시지를 수신자로 전달해 주는 중간 역할

    ※ TPS : 초당 트랜잭션 수

    ※ 영속성 : 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미


    출처

     https://ifuwanna.tistory.com/487

    https://fastcampus.co.kr/dev_online_kafka

     

    728x90

    'Framework & Library > Kafka' 카테고리의 다른 글

    Kafka - Replication  (0) 2023.02.20
    Kafka 기초 - Consumer  (0) 2023.02.18
    Kafka 기초 - Producer  (0) 2023.02.18
    Kafka 기초 - Broker, Zookeeper  (0) 2023.02.18
    Kafka 기초 - Topic, Partition, Segment  (0) 2023.02.17

    댓글

Designed by Tistory.