본문 바로가기
👩‍💻TIL/kafka

[kafka] 메세지큐/ 카프카의 구조, 구성요소, 작동원리

by devuna 2021. 1. 19.
728x90

[kafka] 메세지큐, 카프카의 구성요소, 작동원리

카프카(apache kafka)는 메세지큐 방식으로 대용량 데이터를 수집하고 이를 사용자들이 실시간 스트림으로 소비할 수 있게 만들어주는 역할을 하며, 다양한 기업에서 여러 스토리지와 분석 시스템에 데이터를 연결하기 위한 필수 도구로 인식되고 있다.

 

💡 카프카 탄생 배경

카프카는 '링크드인'에서 탄생하게 되었으며, 현재는 아파치 카프카로 오픈소스로 제공되고 있다.

기존의 링크드인 시스템에서는 하나의 서비스가 너무 많은 시스템과 연결되어 발생하는 문제를 해결하기 위해

아래와 같은 목표로 새로운 시스템을 만들었다.

 

  • 프로듀서와 컨슈머의 분리
  • 메시징 시스템과 같이 영구 메시지 데이터를 여러 컨슈머에게 허용
  • 높은 처리량을 위한 메시지 최적화
  • 데이터가 증가함에 따라 스케일아웃이 가능한 시스템

링크드인에서 카프카를 적용한 이후의 데이터 처리 시스템의 특징

  • 사내 서비스에서 발생하는 모든 이벤트/데이터의 흐름을 중앙에서 관리
  • 카프카가 전사 데이터 파이프라인으로 동작하기 떄문에 모든 데이터 스토어와 여기서 발생하는 데이터/이벤트가 카프카를 중심으로 연결되어 있다.
  • 카프카가 제공하는 데이터를 이용해서 다양한 분석이 가능해짐
  • 개발 입장에서도 여러 데이터 시스템에 의존하지 않고, 카프카에만 데이터를 전달하면 되기 때문에 본연의 업무에만 집중할 수 있게 됌

 

💡 왜 카프카가 많이 사용될까?

1. 짧은 시간 내 많은 양의 데이터를 컨슈머까지 전달 가능

- 파티션을 통한 분산처리가능

- 컨슈머 갯수를 늘려 병렬처리 가능

 

2. 뛰어난 확장성과 고가용성

- 이미 카프카 브로커를 사용하고 있더라도 신규 브로커 서버를 추가하여 수평 확장이 가능

- 늘어난 브로커가 다운되더라도 레플리카로 복제된 데이터가 있어 안전하게 복구하여 처리 가능 

 

3. 지워지지 않는 데이터

- 다른 유사 플랫폼에서는 컨슈머에서 데이터를 가져가고 나면 저장된 것이 지워지는 것과 달리

카프카 토픽에 들어간 데이터는 컨슈머에서 데이터를 가져가더라도 데이터가 사라지지 않음

 

이러한 커다란 장점으로 인해 실시간 데이터 처리와 데이터 파이프라인으로서 독보적인 존재가 되었습니다.

 

💡카프카 구조

아파치 카프카는 소스 애플리케이션과 타겟 애플리케이션의 사이에 위치하여 메세지 큐의 역할을 하게 됩니다.

 

여기서 토픽이란 큐라고 볼 수 있으며, 

큐에 데이터를 넣는 역할은 프로듀서가 하고 큐에서 데이터를 가져가는 역할은 컨슈머가 하게 됩니다.

 

프로듀셔, 컨슈머, 토픽들의 기본개념과 역할에 대해서도 추후 정리하여 포스팅하도록 하겠습니다. 

 

 

 

 

728x90

'👩‍💻TIL > kafka' 카테고리의 다른 글

[kafka] 카프카 시작하기 튜토리얼  (0) 2021.01.20

댓글