Kafka

[Kafka] 카프카란?

Jesse 2022. 7. 18. 23:30

 

카프카란

높은 서버와 클라이언트들이 높은 퍼포먼스의 TCP 프로토콜을 하게 하는 분산 시스템이다.

링크드인에서 개발한 오픈소스 메시지 브로커 프로젝트이며, 목적은 데이터 파이프라인의 퍼포먼스를 올리고 스트리밍 분석 및 데이터 결합이다.

카프카를 왜 사용하는지 예시를 보면,

보통 간단한 프로젝트를 하면 윗 그림처럼 하나의 어플리케이션(Source)에 하나의 데이터베이스(target)와 연결된다.

-나는 대학시절에 여러개의 데이터베이스를 사용해야 하는 프로젝트는 해본적이 없다..

그래서 카프카의 필요성에 대해서는 전혀 느끼지 못했다.

자 그럼 어플리케이션과 데이터베이스가 많으면 어떻게 될까

이것도 실제 서비스중인 어플리케이션에 비하면 적은 편이지만 그래도 수정하고 유지보수 하는데에 매우 까다로워 졌다는걸 알수 있다. 

Source는 연결되어 있는 Target에 매우 종속적이게 된다.

자 그럼 카프카를 쓰면 어떻게 될까

이런식으로 모든 Source들은 카프카로 향하고 모든 타겟들은 카프카로부터 데이터를 받는다.

 

Reference: https://techblogstation.com/kafka/apache-kafka/