ㅡ. Apache Kafka

Apache Kafka는 여러 대의 분산 Server에서 대량의 데이터를 처리하는 분산 메시징 시스템 입니다.

일종에 데이터를 받고 데이터를 다른 장치에 보내는데 사용됩니다. 

 

즉, 카프카는 여러 시스템과 장치를 연결하는 역할을 수행합니다. 

 

과연 데이터를 얼마나 많이 받을 수 있을까요?

카프카는 대량의 데이터에 대한 High-Throughput 과 Real-time을 취급하고 있습니다. 

 

카프카는 여러 이벤트(Activity Event, Network Event etc) 에 대해 받고 이를 Datawarehouse 나 Hadoop 그리고 검색 엔진 등에 전달해주는 역할을 합니다. 

 

ㅡ. Apache Kafka History

카프카는 링크드인에서 처음 출발했습니다. 이전에는 메시지 큐 제품이 있었는데 한 건의 레코드 단위로 실시간 처리를 수행하는 역할을 합니다. Java Messaging System 같은것이 존재합니다. 하지만, 이 제품들은 트랜잭션에 따라 송수신 보장을 엄격하게 지켰지만 High-Throughput은 유지하지 못했습니다. 또한, 스케일 아웃 기능을 제공하지 않았고 장기간에 걸쳐 데이터를 대량으로 축적하는 기능을 제공하지 않습니다. 이 밖에도 로그 수집 시스템, ETL도구 같은 것들이 존재했지만 여러 제한 조건들이 있었습니다.

 

ㅡ. Apache Kafka Feature

카프카는 다음 4가지 모델에 따라 만들어졌습니다.

1. 메시징 모델 및 스케일 아웃형

2. 디스크로 데이터 영속화

3. 이해하기 쉬운 API

4. 전달 보증

 

Producer Broker Consumer로 구성되어 있어서 큐잉 모델 그리고 Publish/Subscribe 메시징 모델이 존재합니다. 

큐잉 모델은 중간에 큐를 하나 두어 Producer에서 생성한 데이터를 Consumer 측에 전달하는것을 의미합니다.

반면에 Publish/Subscribe 모델은 Publisher가 Broker에게 전달해주면 Subscriber가 받게 됩니다. 이때, Publisher는 그 메시지를 누가 받았는지 알 수 없고 Broker에는 Topic이라 불리는 메시지를 등록하게 됩니다. 

 

ㅡ. Apache Kafka Messaging Model

여러 컨슈머가 분산 처리로 메시지를 소비하고 여러 서브스크라이버에 동일한 메시지를 전달하여 토픽 기반으로 전달 내용을 변경하는 모델로 구성됩니다. 

'카프카' 카테고리의 다른 글

카프카 주요 요소  (0) 2024.09.16
Kafka 개요  (0) 2024.04.29
Kafka 시작하기  (0) 2021.11.19