공부해봅시당

[KAFKA] 들어가기 전 본문

STUDY/Kafka

[KAFKA] 들어가기 전

tngus 2023. 6. 29. 03:01
현재 작성 중인 KAFKA 시리즈는 [카프카 핵심 가이드] 책을 보고 정리한 글임을 밝힙니다.

들어가기 전

카프카의 시작

카프카는 링크드인에서 구축한 내부 인프라스트럭처

 

등장배경

  • 데이터를 저장하기 위해 만들어진 데이터베이스와 다른 시스템들은 많이 있었지만, 지속적인 데이터의 흐름을 처리할 수 있게 해주는 것은 없었음
  • 카프카를 개발하기 전 메시징 시스템에서부터 로그 수집 시스템과 ETL 툴에 이르는 모든 종류의 현존하는 해법들을 실험해봤지만, 만족스러운 것은 없었음
  • 따라서 완전히 새로운 것을 개발하기로 함

조건

  • 관계형 데이터베이스나 키-값 저장소, 검색 인덱스, 혹은 캐시처럼 데이터 저장에 초점을 둬서는 안되었음
  • 대신 데이터를 지속적으로 진화하고 성장하는 스트림으로서의 데이터를 다루는 것에 초점을 맞추고, 이에 근거한 데이터 아키텍처와 시스템을 구축해야 했음

카프카는 무엇일까

  • 스트리밍 플랫폼으로 생각할 수 있음
    • 데이터 스트림을 쓰고, 읽고, 저장하고, 처리할 수 있게 해주는 시스템
  • 메시지 스트림을 쓰고 읽게 해준다는 점에서 메시징 시스템과 유사함
    • ActiveMQ나 RabbitMQ, IBM의 MQ 등과 유사함
  • 하지만 중대한 3가지 차이점이 있음
    • 1. 카프카는 현대적인 분산 시스템
      • 컴퓨터 네트워크로 연결된 일반적인 하드웨어 위에서 분산 클러스터 형태로 작동하며, 거대 회사들의 모든 애플리케이션을 처리할 수 있을 정도로 확장이 가능함
      • 따라서 기업이 보유한 모든 종류의 데이터 스트림을 처리할 수 있을 정도로 신축성 있게 확장 가능한 중심 플랫폼의 역할을 할 수 있음
      • 수십 개의 메시지 브로커를 제각각 운용하고, 서로 다른 앱들을 일일이 연결하지 않아도 됨
    • 2. 카프카는 원하는 만큼 오랫동안 데이터를 저장할 수 있도록 만들어진 진정한 저장 시스템임
      • 카프카를 서로 다른 시스템 간의 연결 계층으로 사용하고자 할 때 크나큰 이점이 됨
      • 데이터가 복제되고, 영구적이며, 원하는 만큼 오랫동안 보존할 수 있는 만큼 데이터 전송을 확실하게 보장할 수 있기 때문임
    • 3. 스트림 처리의 세계는 추상화의 수준을 현격히 끌어올림
      • 대부분의 메시징 시스템은 단순히 메시지를 전달만 하는 것이 보통
      • 카프카에 내재된 스트림 처리 능력은 훨씬 더 적은 코드를 사용해서 기존 스트림에서 파생 스트림과 데이터세트를 동적으로 산출할 수 있게 해줌

따라서 카프카를 단순히 또 다른 메시지 큐로 간주하는 것은 적절하지 않음

 

하둡과의 차이점

  • 유사점
    • 매우 큰 규모의 데이터 스트림을 저장하고 지속적으로 처리할 수 있게 해준다는 점
  • 차이점
    • 하둡과 빅데이터
      • 분석 애플리케이션을 목적으로 함
    • 카프카
      • 저지연(low latency)라는 특성을 가지기 때문에 직접적으로 비즈니스를 구동하는 코어 애플리케이션을 구축하는 데 활용될 수 있음

ETL이나 데이터 통합 툴과의 차이점

  • 유사점
    • 데이터를 흐르게 하는 것이 목적이고 카프카 역시 마찬가지임
  • 차이점
    • 데이터 통합 툴
      • 한 시스템의 데이터를 긁어모아서 다른 시스템에 집어넣는 역할을 함
    • 카프카
      • 실시간 이벤트 스트림의 처리를 지향하는 플랫폼의 역할을 함
      • 기존의 애플리케이션과 데이터 시스템을 연결할 수 있을 뿐 아니라 데이터 스트림을 작동시키는 커스텀 애플리케이션을 구동시키기 위해 사용될 수 있다는 것을 의미함

이벤트 스트림에 중점을 두는 아키텍처가 매우 중요함

 

모든 상황에 걸쳐 모든 데이터 스트림을 한데 모을 수 있는 능력이 스트리밍 플랫폼의 개념을 매력적으로 보이게 만듦

 

'STUDY > Kafka' 카테고리의 다른 글

[Kafka] 카프카 시작하기 4  (0) 2023.06.29
[Kafka] 카프카 시작하기 3  (0) 2023.06.29
[Kafka] 카프카 시작하기 2  (0) 2023.06.29
[Kafka] 카프카 시작하기 1  (1) 2023.06.29