KAFKA/개념 정리 / / 2021. 4. 13. 14:44

[KAFKA] APACHE KAFKA 개요

반응형

 

책 '실전 아파치 카프카'를 보며 정리한 내용
카프카 자격증을 취득하는 그날까지...

 

 

1. 아파치 카프카 개요

 

1.1 목표

  1. 아파치 카프카의 용도
  2. 아파치 카프카가 탄생한 배경과 영향

 

1.2 아파치 카프카

  • 여러대의 분산 서버에서 대량의 데이터를 처리하는 분산 메시징 시스템으로 메시지를 받고, 받은 메시지를 다른 시스템이나 장치에 보내기 위해 사용.
  • 여러 시스템과 장치를 연결하는 중요한 역할.
  • 대량의 데이터를 높은 처리량실시간으로 취급하기 위한 제품.

 

 

  1. 확장성 : 여러 서버로 '확장 구성'이 가능, 데이터에 양에 따라 시스템 확장이 가능.
  2. 영속성 : 수신한 데이터를 '디스크에 유지' 할 수 있기 때문에 언제든지 데이터 접근.
  3. 유연성 : '연계할 수 있는 제품이 많기' 때문에 제품이나 시스템을 연결하는 허브 역할.
  4. 신뢰성 : '메시지 전달 보증' 데이터의 분실을 걱정하지 않아도 된다.
  • 현재 종합 스트림 처리를 위한 플랫폼이 되고 있다.

 

 

1.3 카프카 탄생 배경

 

1.3.1 링크드인의 시스템 요구 사항

  • 카프카는 2011년 미국 링크드인에서 출발했다. 웹사이트의 로그를 처리하여 웹사이트 활동을 추적하는것을 목적으로 개발되었다.(사용자의 페이지 뷰&광고의 이용 등)
  • 링크드인의 목표

링크드인 사례

 

 

1.3.2 카프카 이전 제품(링크드인의 요구사항을 충족하지 못한 부분)

  1. 메시지 큐
    • 한 건의 레코드 단위로 실시간 처리를 위한 것.(WebSphere MQ,Active MQ, Rabbit MQ, 등)
    • 강력한 전달 보증이 오히려 오버 스팩.(링크드인은 '높은 처리량'의 우선순위가 더 높았다.)
    • 스케일 아웃이 용이 하지 않았다.
    • 메시지가 대량으로 쌓이는 것을 예상하지 않았다.
  2. 로그 수집 시스템
    • 주로 웹 서버 등의 프론트엔드 서버의 로그를 수집하기 위한 것.(Scribe, Flume, 등)
    • HDFS로 데이터 축적과 배치 처리만 고려.
    • 어려운 API
    • 수신하는 쪽이 임의로 메시지를 수신하기 어렵다.
  3. ETL 도구
    • 데이터 발생원에서 데이터를 추출하고 필요에 따라 변환해 데이터베이스와 데이터 웨어하우스에 로드하는 기능을 갖추고 있다.(DataStage, Interstage, Cosminexus, Informatica PowerCenter, Talend, 등)
반응형

'KAFKA > 개념 정리' 카테고리의 다른 글

[KAFKA] APACHE KAFKA 기초  (0) 2021.04.13
[Kafka] Kafka(카프카)  (0) 2020.10.13
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유