본문 바로가기
Kafka

KafKa란?

by 규난 2023. 10. 8.
728x90

목차

  1. kafka란?
  2. kafka가 데이터 파이프라인으로 적합한 이유
  3. kafka의 중앙 집중화
  4. 정리

 

1. KafKa란?

카프카 공식 홈페이지에서는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 사용하는 오픈 소스 분산 이벤트 스트리밍 플랫폼이라 소개하고 있습니다. 이벤트 스트리밍은 데이터베이스, 웹, 웹 백엔드 서버와 같은 이벤트 소스에서 거의 실시간으로 발생하는 데이터를 연속적으로 처리 및 수집, 분석 하는 방식입니다.

https://kafka.apache.org/

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

kafka는 링크드인 백엔드 아키텍처에서 파편화된 데이터 파이프라인 때문에 서비스를 안정적으로 운영하는 데에 어려움을 겪어 링크드인 자체에서 만든 시스템입니다. 여기서 말하는 데이터 파이프라인은 end to end 방식의 데이터 수집 및 적재 방식을 개선하고 안정성을 추구하며, 유연하면서도 확장이 가능하게 자동화하는 것을 의미합니다.

 

2. Kafka가 데이터 파이프라인으로 적합한 이유

  • 높은 처리량
    • producer -> broker, broker -> consumer로 데이터를 보낼 때 데이터를 묶어서 보내기 때문에 동일한 network 비용으로 더 많은 데이터를 전송이 가능하며 topic에 여러 partition을 분배하고 partition 개수만큼 consumer 개수를 늘려서 동일 시간당 데이터 처리를 늘릴 수 있습니다. (데이터 병렬 처리 가능)
  • 확장성
    • 데이터가 적을 때는 kafka cluster의 broke를 최소한의 개수로 운영하다가 데이터가 많아지면 broker 개수를 늘려 sacle-out을 할 수 있으며 반대로 데이터가 적어지면 broker 개수를 줄이는 sacle-in이 가능합니다.
  • 영속성
    • 다른 메세징 플랫폼과 다르게 데이터를 disk에 저장해서 데이터의 영속성을 보장합니다.
    • kafka는 broker에 메세지가 실리면 송신 완료라는 사상을 가지고 있으면 memory -> disk로 데이터의 flush는 os에게 맡기기 때문에 disk에 저장함에도 불구하고 높은 처리량을 제공합니다. 또한 memory의 page cache 영역을 사용해서 한 번 읽은 데이터에 대해서는 접근을 더 빨리할 수 있습니다.
  • 고가용성
    • cluster로 이루어진 kafka는 producer로 전송받은 데이터는 한 대의 broker에만 저장하는 것이 아니라 또 다른 broker에도 저장(데이터의 replication(복제)) 할 수 있기 때문에 3개 이상의 서버들로 운영되는 kafka cluster는 일부 서버가 장애가 발생하더라도 무중단으로 안전하고 지속적으로 데이터 처리가 가능합니다.

 

3. Kafka의 중앙 집중화

Kafka는 데이터의 처리를 한곳에 모아서 할 수 있도록 중앙 집중화되었습니다.

Kafka가 등장하기 전에는 대부분의 아키텍처는 데이터를 생성하는 소스 애플리케이션과 데이터를 적재하는 타깃 애플리케이션이 직접 연결되는 구조였습니다. 이런 구조는 한 애플리케이션의 장애가 연결된 애플리케이션에 직접적인 영향을 주고 데이터 파이프라인이 복잡해진다는 단점이 있었습니다. 

kafka 등장전의 아키텍처

kafka는 broker를 둠으로써 위와 같은 N * M의 구성의 단점을 보완했습니다.

또한 producer와 consumer 개수의 증감이 서로에게 영향을 주지 않으므로 변경에 유연한(scale-out, scale-in) 구조가 되었습니다.

4. 정리

이번 포스트에서는 kafka가 무엇이고 왜 등장했는지 간략하게 알아보았습니다.

다음 포스트에서는 kafka 설치와 간략한 실습을 해보도록 하겠습니다. 앞으로 kafka의 대한 공부를 꾸준히 할 생각입니다.

 

 

[출처] https://www.yes24.com/Product/Goods/99122569

728x90

'Kafka' 카테고리의 다른 글

Kafka 설치  (1) 2023.10.09