아파치 카프카(apache kafka) 아파치 카프카(Apache Kafka)는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 스루풋의 낮은 레이턴시를 지닌 플랫폼을 제공하는 것이 목표
- pub/sub 메시지 큐: 펍/섭 모델
- 스트리밍 데이터를 처리
- 클러스터를 Scale out해야 할 경우 수십 대의 Broker(:Server node) 확장 가능
하둡: 속도 너무 느림
-> 아파치 스파크: 배치 방식
-> 전송 + 처리 프레임워크를 모두 제공
 
 
토픽 이름 () 아파치 카프카(Apache kafka)
분류 DB > Big data > 아파치 카프카
키워드(암기) pub/sub 메시지 , 스트리밍 데이터를 처리, 클러스터를 Scale out해야 경우 수십 대의 Broker(:Server node) 확장 가능, 프로듀서와 컨슈머의 분리, 멀티 프로듀서, 멀티 컨슈머, 디스크에 메시지 저장, 확장성, 높은 성능, topic, producer, consumer, broker
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 2. 링크드인, 트위터등 대용량을 다루는 기업에서 대용량 실시간 처리를 위해 사용하는 시스템인 카프카(Kafka) 대해서 특징, 구성요소와 동작방식에 대해 설명하시오. 2018.07.응용.2
2 7. 대용량을 다루는 기업에서 대용량 실시간 처리를 위해 사용하는 시스템인 카프카(Kafka)에 대해서 특징, 구성요소와 동작방식에 대해 설명하시오. 2019.01_D1
3 3. 카프카(Kafka) 대해서 설명하시오. 2018.08_D1
4 7. 카프카(Kafka) 대해 설명하시오. 2017.01_D5

 

  1. 고성능 분산 메시징 펍/(Pub/Sub) 모델 시스템, 카프카의 개요
  1. 카프카(Kafka) 개념

- 웹사이트, 애플리케이션, 센서 등에서 취합한 데이터 스트림을 실시간으로 관리하기 위한 오픈소스 시스템

- 원천시스템으로부터 대규모 트랜잭션 데이터가 발생했을 때, 데이터를 버퍼링하면서 목적지 시스템에

안정적으로 전송하기 위한 MOM(Message Oriented Middleware) 시스템

- 링크드인에서 개발, 2011년에 오픈소스로 공개

 

  1. 카프카 특징
특징 설명
프로듀서와 컨슈머의 분리 메시지 전송방식 중 메시지를 보내는 역할과 받는 역할이 완벽하게 분리된 Pub/Sub 방식 적용
멀티 프로듀서, 멀티 컨슈머 한의 토픽에 여러 프로듀서 또는 컨슈머들이 접근 가능한 구조
연속성 디스크에 메시지를 저장하고 유지
확장성 서비스 중단 없이 온라인 상태에서 확장 가능, 하나의 카프카 클러스터는 3대의 브로커로 시작해 수십 대의 브로커로 확장 가능
분산성 분산 시스템을 기본으로 설계되었기에, 기존 메시징 시스템에 비해 분산 및 복제 구성을 손쉽게 할 수 있음
높은 성능 고성능을 유지하기 위해 분산처리, 배치처리 사용
단일 카프카가 1초당 개의 클라이언트로부터 유입되는 수백 메가바이트 처리가능

 

  1. 카프카 구성요소
  1. 카프카 구성요소 개념도
- Kafka 발행-구독(publish-subscribe) 모델을 기반으로 동작하며 크게 producer, consumer, broker 구성된다

 

  1. 카프카 구성요소 설명
구성요소 설명 역할
topic 발행(Publish) 메시지들의 카테고리 프로듀서와 컨슈머들이 카프카로 보낸 자신들의 메시지를 구분하기 위한 이름
producer 메시지를 생성하는 프로세스 특정 Topic 해당하는 메시지를 생성하는 프로세스, 메시지를 Broker 전달
consumer 메시지를 사용하는 프로세스 Broker에게서 구독(Subscribe)하는 Topic의 메시지를 가져와 사용(처리)
broker producer consumer 메시지를 관리하는 클러스터 서버 전달 받은 메시지를 topic별로 분류

 

  1. 카프카 동작방식
  1. 카프카의 아키텍처

- 카프카는 발생-구도(publish-subscribe)모델을 기반으로 동작

- 데이터 단위를 보내는 (프로듀서)에서 카프카에 토픽이라는 각각의 메시지 저장소에 저장하면 가져가는

(컨슈머) 원하는 토픽에서 데이터를 가져감

  1. 카프카의 동작방식
번호 동작 방식
1 프로듀서는 새로운 메시지를 카프카로 전송
2 프로듀서가 보낸 메시지는 카프카에 컨슈머 큐(토픽) 도착해 저장
3 컨슈머는 카프카 서버에 접속하여 새로운 메시지를 가져감
4 프로듀서는 컨슈머와 관계없이 새로운 메시지를 카프카로 전송, 컨슈머도 프로듀서와 관계없이 카프카에서 새로운 메시지를 가져옴
5 카프카에 수많은 메시지들이 저장되고 메시지들은 토픽이라는 식별자를 이용해 토픽 단위로 저장

 

  1. 카프카와 클라우드 메시징 서비스 비교
비교항목 카프카 키네시스 /
개발사 링크드인 아마존 구글
사용형태 DIY 클라우드 서비스 클라우드 서비스
SDK 자바/파이썬 자바/파인썬//닷넷 자바/파이썬/
리플리케이션 팩터 조정 가능 조정 불가 조정 불가
성능 시스템 구성에 따라 다양함 샤드 1MB/ 쓰기,
2MB/ 읽기
100MB/ 읽기, 쓰기
데이터 저장 기간 조정 가능 7(최대) 7(최대)
ACK 주키퍼에 저장 아마존 다이나모DB 서비스에 저장 Pub/Sub 자체 관리
메시지 순서 파티션 단위 샤드 단위 토픽 단위
운영 인원 필요 필요 없음 필요 없음
운영 비용 장비/인건비 서비스 사용료 서비스 사용료

 

반응형

'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글

HDFS(Hadoop Distributed File System)  (0) 2023.08.25
Big Data 보안  (0) 2023.08.24
랜덤 포레스트(Random Forest)  (0) 2023.08.22
앙상블 학습/모델  (0) 2023.08.21
빅데이터 분석 기법(알고리즘)  (0) 2023.08.20

+ Recent posts