카프카란?

jy.YOON·2023년 5월 23일

카프카

목록 보기
1/5

링크드인 에서 고안된 시스템

아파치 카프카(Apache Kafka)는 분산 스트리밍 플랫폼이며 데이터 파이프 라인을 만들 때 주로 사용되는 오픈소스 솔루션

도입이전

Kafka란?

  • 파편화된 데이터 수집 및 분배 아키텍처를 운영하는데 큰 어려움을 겪음
  • 타킷 애플리케이션 장애 발생시 소스 애플리케이션에 직접적으로 영향을 줌
  • 카프카 등장

도입후

스타트업 개발자가 배우는 아파치 카프카
  • 카프카 중앙 배치함으로써 소스/타킷 애플리케이션 간 의존도 완화

  • 기존 1:1 매칭 파이프라인의 의존도 타파



카프카의 장점

  • 높은 처리량
    • 일반적으로 많은 양의 데이터 송수신시 많은 네트워크 비용 발생
    • 그러나 카프카는 동일한 양 데이터 송신에서의 최소한의 네트워크 통신 횟수
    • 동일 시간 내 많은 데이터 전송가능
    • 많은 양의 데이터를 배치(묶음단위)로 처리
    • 파티션을 통한 데이터 병렬처리 -> 파티션 개수를 늘리면 데이터 처리량 증가

  • 확장성
    • 클러스터의 브로커 개수를 자연스럽게 조절하여 스케일 아웃/스케일 인 가능
    • 무중단 운영 지원으로 인한 안정적 운영 가능
  • 영속성
    • 전송받은 데이터를 메모리에 저장하지 않고 파일 시스템에 저장
    • 파일 시스템은 보편적으로 느리지만 카프카는 페이지 캐시영역을 메모리에 따로 생성하여 사용하기 때문에 처리량이 높음

*페이지캐시

한번 읽은 파일 내용은 메모리에 저장시켰다가 다시 사용하는 방식(OS에서 사용됨)
  • 고가용성
    • 3개 이상의 서버들로 운영되는 카프카 클러스터는 일부 서버 장애가 발생하더라고 무중단으로 안전하고 지속적인 데이터 처리 가능
    • 온프레미스/퍼블릭 클라우드 환경에서도 데이터를 안전히 복제할 수 있는 옵션 제공
profile
5 Seconds rule

0개의 댓글