분산 메시징 프레임워크 절대 강자, Kafka

 

1. Kafka란?

- 분산환경에서 대규모 메시지를 안정적으로 전송, 수집, 활용할 수 있도록 도와주는 오픈소스 메시징 프레임워크. 

- Broker 모델을 이용한 Publish/Subscriber 구조와 Replication이 가능한 Message Queue를 이용하여 신뢰성있는 메시지의 수집이 가능하다는 것이 주요 특징.

- 하둡에코시스템에서 데이터 수집도구로 활용

- Flume이나 Filebeat 등 기타 스트리밍 도구와 함께 사용 시 신뢰성있는 메시지 수집도구로서 활용성 증가

- 특징: Pub/sub 구조, Replication, Partition Tolarance, Message queue, Zookeeper 의존성

 

2. 신뢰성 있는 메시지 전달을 가능하게 하는 Kafka 구조

Apache FOUNDATION

<카프카 핵심 구성요소인 broker와 producer, consumer 구성도>

 

Kafka Server(Broker)

- 카프카 핵심 엔진, 토픽을 단위로 Partition된 Message Queue를 관리, 

- Replication Factor 조정으로 신뢰성(가용성) 보장

- Message Queue(Channel) 로 메시지 관리

Topic

- 카프카에서 메시지를 주고 받기 위해 사용하는 Key

- 토픽단위로 파티션 레벨을 조정할 수 있으며 메시지 전송 시 RR큐 등 지정 전송이 가능

Producer와 Consumer

- Publisher와 Subscriber, 카프카에서는 프로듀서와 컨슈머라는 용어를 사용

- Java API를 통해서 손쉽게 구현 가능

- Flume, Filebeat 등에서 제공하는 Kafka Sink를 이용 Producer 연결 가능

Zookeeper

- 카프카 서버의 자원을 관리하는 기반 모듈, 카프카는 기본적으로 Zookeeper 위에서 동작

 

3. Kafka가 다른 메시지 수집 도구와 다른 점

- 카프카는 수집된 로그, 메시지 정보를 디스크에 저장

- Pub/Sub 구조로 실시간 푸쉬 방식이 아닌 Consumer가 폴링하는 방식으로 동작

- Flume 같은 메모리 기반 스트리밍 데이터 수집 도구보다 속도는 느릴 수 있으나 상대적으로 신뢰성이 높음

 

 

카프카 공식 페이지

https://kafka.apache.org/

카프카 위키백과

https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%B9%B4%ED%94%84%EC%B9%B4

 

 

이 포스트는 IT토픽의 주요 내용과 핵심 키워드를 간략히 설명하는 것이 목적으로, 디테일한 내용에 대해서는 깊이 다루지 않습니다.

 

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기