관리 메뉴

개발 여행자, 현

[Kafka] 카프카란? 본문

백엔드

[Kafka] 카프카란?

예스현 2023. 2. 28. 09:26
[Kafka] 카프카란?

 

: 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 오픈 소스 분산 이벤트 스트리밍 플랫폼https://kafka.apache.org/

 

장점
- 프로듀서/컨슈머 분리
- 메시지 데이터를 여러 컨슈머에게 허용
- 높은 처리량을 위한 메시지 최적화
- 스케일 아웃 가능
- 관련 생태계 제공

 

카프카 클러스터
: 메시지를 저장하는 저장소
- 하나의 클러스터는 여러개의 브로커로 구성
- 브로커는 각각의 서버
- 카프카 클러스터를 관리하는 용도로 주키퍼 클러스터가 필요. 카프카 클러스터에 대한 정보를 갖고있음

 

Producer : 메시지(event)를 발행하여 생산(Write)하는 주체
- 메시지를 카프카에서 읽어오는 것을 컨슈머라고 함.
- 카프카에서 메시지를 저장하는 단위는 토픽
: 프로듀서는 라운드로빈 또는 키로 파티션 선택
- 한 개의 토픽은 한 개 이상의 파티션으로 구성
 : 같은 키를 갖는 메시지는 같은 파티션에 저장이 됨.
- 각 메시지 저장 위치를 오프셋 offset이라고 함
   저장된 메세지는 차례대로 오프셋 0,1,2,3 등 값을 갖게됨
- 프로듀서가 넣은 메시지는 파티션의 맨 뒤에 추가

 

Consumer : 메시지(event)를 구독하여 소비(Read)하는 주체
- 컨슈머는 offset 기준으로 마지막 커밋 시점부터 메시지를 순서대로 읽음
- 메시지는 읽어가도 삭제되지 않음

 

Broker : 각각의 카프카 서버, 동일 노드에 여러 브로커를 띄울 수 있음

 

Zookeeper : 카프카 클러스터 정보 / 분산처리 관리 등과 관련된 메타데이터 저장
- 카프카 실행 전 반드시 실행되어야 함

 

Topic : 메시지를 구분하는 단위
- 파일시스템의 폴더와 메일함과 비슷한 개념 ex) 주문용 토픽, 결제용 토픽 등
- 한 개의 Topic은 한 개 이상의 Parition으로 구성

Partition : 메시지를 저장하는 물리적인 파일
- 메시지 추가만 가능한(append-only)파일

offset : Partition내 각 메시지가 저장된 상대적 위치
- Producer를 통한 Message는 Paritition 맨 뒤에 추가 (Queue)

 

[관련 글] https://hyokeun0419.tistory.com/57

 

[데브원영]아파치 카프카 for beginners 정리

아파치 카프카는 대용량, 대규모 메세지 데이터를 빠르게 처리하도록 개발된 메시징 플랫폼이다. 큐 역할을 하며, 고가용성으로 서버가 이슈가 생기거나 갑작스러운 전원이 내려가는 상황에서

hyokeun0419.tistory.com

'백엔드' 카테고리의 다른 글

[Docker] Docker Compose ELK 구축  (0) 2023.02.28
[ELK] ELK 설치  (0) 2023.02.28
[Kafka, Springboot] 스프링부트 카프카 연동하기  (0) 2023.02.28