kafka 작동원리, 활용, 장단점

2023. 9. 5. 16:52학습/Data Engineering

 

Apache Kafka는 LinkedIn에서 개발된 오픈 소스 스트림 처리 플랫폼입니다.

https://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS9400468504 

 

링크드인은 왜 카프카를 만들었나

@import url('https://fonts.googleapis.com/css?family=Nanum+Gothic:400,700|Noto+Serif+KR:200&display=swap');.body {margin-top: 20px;font-family: 'Noto Serif KR', serif;}.bodytitle_1 {margin-top: 1.5em;...

www.hanbit.co.kr

큰 데이터를 실시간으로 처리하고 분석하는 데 사용됩니다.

 

 

작동 원리

Kafka의 핵심 개념은 Producer, Broker(Server), Consumer입니다.

Producer: 데이터를 생성해서 Kafka에 전달하는 역할을 합니다.
Broker(Server): Producer로부터 받은 메시지를 저장하고 관리합니다. 여러개의 Broker로 구성된 Kafka 클러스터는 대용량의 메시지들을 분산 저장합니다.
Consumer: Broker가 가지고 있는 메시지를 가져가는 역할을 합니다.


추가!
Topic: Kafka에서 메시지들은 Topic이라는 카테고리에 따라 분류됩니다.
Partition: Topic은 하나 이상의 Partition으로 나뉘어져 있습니다. 이렇게 하는 이유는 병렬처리를 가능하게 하기 위함입니다.
Offset: 각 Partition 내에서 메시지 위치(순서)를 표현하는 unique identifier 입니다.

 

활용처

Kafka는 다음과 같은 환경에서 주로 사용됩니다:

실시간 스트림 데이터 처리 및 분석
로그 수집 시스템
애플리케이션 간의 비동기 작업 큐
웹사이트 활동 추적

 

장점

고성능: 대용량 실시간 스트림 데이터 처리에 최적화되어 있습니다.
확장성: 클러스터 형태로 구축되어 새로운 노드 추가와 함께 성능이 선형적으로 증가합니다.
내구성과 안정성: 복제와 파티셔닝 기능을 제공하여 데이터 손실 위험이 낮습니다.

단점

복잡성: 설정과 관리가 상대적으로 복잡할 수 있으며, 장애 발생 시 디버깅도 어렵습니다.
기본적인 메세징 시스템 기능 부재: JMS(Java Message Service)나 RabbitMQ 같은 전통적인 메세징 시스템과 달리, 메시지 우선순위 지정, 지연 메시지 전송 등의 기능이 부재합니다.
Kafka는 이러한 특성들로 인해 실시간 데이터 파이프라인 및 스트리밍 애플리케이션에서 널리 사용됩니다.


728x90