실시간 처리에 대해서 관심이 있었던지라 카프카 스터디에 참여해 실시간 데이터 수집에 대해 공부하기 시작했다.

작성할 내용들은 카프카 스터디를 통해서 알게 된 내용들을 적고 실습한 내용을 같이 채우고자 한다.

1장 카프카 개요

카프카의 도입 사례, 주요 특징, 성장에 대해서 가볍게 짚고 넘어간다.

조금씩 뜯어보면서 어떤 부분이 중요한지 살펴보자

 

1-1. 카프카 도입 사례 및 이용 현황

책에서는 잘란도라는 기업(처음 들어봤다..)과 트위터의 도입 사례를 설명한다.

잘란도는 독일의 무신사(?) 같은 느낌의 기업이라고 한다. 궁금해서 웹 페이지를 들어가 봤는데..

그린 고블린 형님께서..!

(여튼 트위터는 X로 바뀌고.. 다들 많이 아니까 패스!)

 

잘란도의 도입배경은 이러하다.

 

'데이터 변화가 스트림으로 컨슈머에 전달되는 이벤트 드리븐 시스템으로의 전환'

 

이를 목적으로 여러 시도들을 진행했는데..!

바운드 아웃바운드 데이터의 일치성 검증, 통신 방법에 대한 선택과 같은 다각적 고민 
->

동기화 방식의 CRUD를 채택했으나, 한계점에 봉착했다. 이유는 다양한 클라이언트들의 요구사항을 효율적으로 지원하기 어렵다는 것.

빠른 전송을 위한 클라이언트 또는 대량의 배치 전송을 위한 클라이언트를 지원하기 어려움

 

위와 같은 문제들에 봉착하고 말았다. 그래서 꺼내든 것은 바로 카프카! 

그 이유들은 카프카의 주요 특징들에 담겨있으니 아래에서 한 번에 설명하고자 한다.

1-2. 카프카 주요 특징

높은 처리량과 낮은 지연시간

카프카는 매우 높은 처리량과 낮은 지연시간을 자랑한다고 한다.

 

다른 MQ들과 비교했는데..

래빗 MQ의 경우 응답속도가 가장 빠르나, 처리량이 늘어나면 카프카가 독보적이라고 한다.

펄사의 경우는 서버 간의 메시징을 위한 멀티테넌트 고성능 솔루션이라고..(?)

(GPT:티 테넌트(Multi-tenant)는 소프트웨어 아키텍처 모델로,
여러 고객(테넌트)이 단일 소프트웨어 인스턴스를 공유하는 방식을 말합니다. )

 

추가로 관련 자료를 가져왔다.

카프카, 펄사, 래빗 MQ 비교: https://www.confluent.io/blog/kafka-fastest-messaging-system/

 

Benchmarking RabbitMQ vs Kafka vs Pulsar Performance

A complete benchmark of RabbitMQ, Kafka, and Pulsar to determine performance, throughput, and latency at scale. View the comparison results!

www.confluent.io

Apache Pulsar 소개: https://devocean.sk.com/blog/techBoardDetail.do?ID=164597&boardType=techBlog

 

Open Source 기반 Messaging Platform - Apache Pulsar 소개

 

devocean.sk.com

 

높은 확장성

카프카는 손쉬운 확장이 가능하도록 설계되었다고 한다.

프로듀서와 컨슈머를 생성해서 넣으면 되니까..?라고 생각한다.

여튼 링크드인에서는 확장이 필요서 해당 부분을 고려해 설계했다고 한다.

 

고가용성

클러스터 내 리플리케이션 기능을 통해서 고가용성을 확보했다.

 

내구성

acks옵션을 이용해서 메시지 내구성을 강화했다.

 

개발편의성, 운영 및 관리의 편의성

프로듀서와 컨슈머가 완벽하게 분리되어 동작해 원하는 부분만 개발해 사용가능하다.

또한 개발 편의성을 위해 카프카 커넥트와 스키마 레지스트리를 지원한다.

 

 

자..

마지막으로 카프카는 Apache Kafka와 Confluent 카프카가 있는데 이를 비교한 글이 컨플루언트에 있어서 가져와보았다.

https://www.confluent.io/ko-kr/apache-kafka-vs-confluent/

 

Apache Kafka vs. Confluent: 특징 및 기능 비교 | KR

Kafka and Confluent have numerous differences. Here's a side-by-side comparison of Confluent vs Kafka: features, connectors, clients, performance, scalability, and more.

www.confluent.io

 


책을 읽으면서 제로카피, 이벤트 버스 패턴, 람다 아키텍처와 같이 기존에 알지 못했던 지식들이 나와
CS공부를 함에 있어서도 많은 도움이 되리라 생각한다.

 

이번 기회로 카프카를 공부해 보고 실제 환경에서 데이터를 가져오는 방법으로 카프카를 고려할 수 있는 역량을 길러보고자 한다.

'Data Engineering > kafka' 카테고리의 다른 글

kafka > 실전 카프카 개발부터 운영까지 2장  (3) 2024.10.15

+ Recent posts