Apache Kakfa

Hayoung Kim·2021년 1월 24일
0

StreamingData

목록 보기
1/1
post-thumbnail

Kafka란?

전통적인 엔터프라이즈 메시징 시스템의 대안으로 하루에 1조 4천억 건의 메시지를 처리하기 위해 LinkedIn이 개발한 내부 시스템으로 시작했으나, 현재 이는 다양한 기업의 요구사항을 지원하는 애플리케이션을 갖춘 오픈소스 데이터 스트리밍 솔루션이다.

실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼이다.

특히 실시간 로그처리에 특화되어있는 솔루션이며 데이터 유실 없이 안전하게 전달하는 것이 주 목적인 메세지 시스템에서 Fault-Tolernat한 안정적인 아키텍처와 빠른 퍼보먼스로 데이터를 처리할 수 있기 때문에 빅데이터 과제에 적합하다.

☑︎ With Kubernetes
쿠버네티스는 Apache Kafka에 이상적인 플랫폼이다. 개발자들이 Kafka 애플리케이션을 호스팅하려면 확장 가능한 플랫폼이 있어야 하는데, 쿠버네티스가 바로 그 답이다

Kafka+ Kubernetes ☞ Kafka의 이점을 모두 얻는 동시에 쿠버네티스의 확장성고가용성, 이식성배포 편의성 이점도 활용할 수 있다.

아키텍처

Topic을 기준으로 메세지를 관리한다. Producer는 특정 topic의 메시지를 생성한뒤 해당 메시지를 broker에 전달한다. Broker가 전달받은 메시지를 topic별로 분류하여 쌓아놓으면 해당 topic을 구독하는 consumer들이 메시지를 가져가서 처리하게 된다.

기존 메시징 시스템에서는 broker가 consumer에게 메시지를 push해 주는 방식인데 반해, kafka는 consumer가 broker로부터 직접 메시지를 가지고 가는 pull 방식으로 동작하기 댸문에 consumer는 자신의 처리능력만큼의 메시지만 broker로부터 가져오기 때문에 최적의 성능을 낼 수 있다.

0개의 댓글