상 | 아파치 카프카(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 |
- 고성능 분산 메시징 펍/섭(Pub/Sub) 모델 시스템, 카프카의 개요
- 카프카(Kafka) 개념
- 웹사이트, 애플리케이션, 센서 등에서 취합한 데이터 스트림을 실시간으로 관리하기 위한 오픈소스 시스템
- 원천시스템으로부터 대규모 트랜잭션 데이터가 발생했을 때, 데이터를 버퍼링하면서 목적지 시스템에
안정적으로 전송하기 위한 MOM(Message Oriented Middleware) 시스템
- 링크드인에서 개발, 2011년에 오픈소스로 공개
- 카프카 특징
특징 | 설명 |
프로듀서와 컨슈머의 분리 | 메시지 전송방식 중 메시지를 보내는 역할과 받는 역할이 완벽하게 분리된 Pub/Sub 방식 적용 |
멀티 프로듀서, 멀티 컨슈머 | 한의 토픽에 여러 프로듀서 또는 컨슈머들이 접근 가능한 구조 |
연속성 | 디스크에 메시지를 저장하고 유지 |
확장성 | 서비스 중단 없이 온라인 상태에서 확장 가능, 하나의 카프카 클러스터는 3대의 브로커로 시작해 수십 대의 브로커로 확장 가능 |
분산성 | 분산 시스템을 기본으로 설계되었기에, 기존 메시징 시스템에 비해 분산 및 복제 구성을 손쉽게 할 수 있음 |
높은 성능 | 고성능을 유지하기 위해 분산처리, 배치처리 사용 단일 카프카가 1초당 몇 천 개의 클라이언트로부터 유입되는 수백 메가바이트 처리가능 |
- 카프카 구성요소
- 카프카 구성요소 개념도
![]() |
- Kafka는 발행-구독(publish-subscribe) 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성된다 |
- 카프카 구성요소 설명
구성요소 | 설명 | 역할 |
topic | 발행(Publish)된 메시지들의 카테고리 | 프로듀서와 컨슈머들이 카프카로 보낸 자신들의 메시지를 구분하기 위한 이름 |
producer | 메시지를 생성하는 프로세스 | 특정 Topic에 해당하는 메시지를 생성하는 프로세스, 메시지를 Broker에 전달 |
consumer | 메시지를 사용하는 프로세스 | Broker에게서 구독(Subscribe)하는 Topic의 메시지를 가져와 사용(처리) |
broker | producer와 consumer간 메시지를 관리하는 클러스터 서버 | 전달 받은 메시지를 topic별로 분류 |
- 카프카 동작방식
- 카프카의 아키텍처
- 카프카는 발생-구도(publish-subscribe)모델을 기반으로 동작
- 데이터 단위를 보내는 측(프로듀서)에서 카프카에 토픽이라는 각각의 메시지 저장소에 저장하면 가져가는
측(컨슈머)이 원하는 토픽에서 데이터를 가져감
- 카프카의 동작방식
번호 | 동작 방식 |
1 | 프로듀서는 새로운 메시지를 카프카로 전송 |
2 | 프로듀서가 보낸 메시지는 카프카에 컨슈머 큐(토픽)에 도착해 저장 |
3 | 컨슈머는 카프카 서버에 접속하여 새로운 메시지를 가져감 |
4 | 프로듀서는 컨슈머와 관계없이 새로운 메시지를 카프카로 전송, 컨슈머도 프로듀서와 관계없이 카프카에서 새로운 메시지를 가져옴 |
5 | 카프카에 수많은 메시지들이 저장되고 메시지들은 토픽이라는 식별자를 이용해 토픽 단위로 저장 |
- 카프카와 클라우드 메시징 서비스 비교
비교항목 | 카프카 | 키네시스 | 펍/섭 |
개발사 | 링크드인 | 아마존 | 구글 |
사용형태 | 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 |