Post

[Kafka] Apache Kafka란?

Apache Kafka 개념


아파치 카프카(Apache Kafka)는 실시간 데이터 스트리밍 플랫폼으로, 대용량의 데이터를 안정적이고 확장 가능한 방식으로 처리할 수 있도록 도와주는 오픈소스 분산 메세징 시스템이다.

Kafka



카프카는 메시지 큐의 기능을 제공한다. Producer(송신자)가 데이터를 생성하여 카프카에 전송하면, 이를 Consumer(수신자)가 실시간으로 읽어와 소비하는 비동기적 데이터 전달 시스템을 의미한다.


또한, 카프카는 실시간 스트리밍 데이터 처리에도 사용된다.

이는 이벤트 기반 데이터 처리를 의미하며, 데이터의 발생과 동시에 실시간으로 처리하고 응답할 수 있다.

카프카의 Streams API를 사용하면 데이터 스트림을 처리하고 실시간으로 변환, 집계, 분석하는 기능을 제공한다.


따라서, 카프카는 대용량의 데이터를 메시지 큐 시스템으로 처리하면서 동시에 실시간 스트리밍 데이터 처리를 지원하는 특성을 가지고 있어, 메시지 큐와 스트리밍 혼합형 시스템으로 볼 수 있다.



Kafka의 주요 특징


  • 높은 확장성
    • 대량의 데이터를 처리할 수 있는 분산 아키텍처를 가지고 있어, 높은 처리량과 낮은 지연시간의 성능을 제공
  • 고가용성
    • 카프카는 분산 아키텍처를 기반으로 하며, 여러 브로커 노드로 클러스터를 구성
    • 따라서, 데이터 복제를 통해 브로커 하나가 실패하더라도 데이터 유실을 방지
  • 내구성
    • 카프카는 데이터를 디스크에 지속적으로 저장하여 데이터 유실을 방지하고 안정적으로 보존
  • 개발 편의성
    • 카프카는 다양한 클라이언트 라이브러리를 제공하여 다른 프로그래밍 언어로 손쉽게 데이터를 생산/소비 가능
    • 메시지를 토픽(topic)으로 구분하며, 토픽 기반의 메시지 패턴은 데이터의 구조화와 관리를 용이하게 만듦
  • 운영 및 관리 편의성
    • 모니터링, 클러스터 확장, 토픽 파티션 관리 등을 위한 도구를 제공하여 관리자들이 카프카 클러스터를 효과적으로 관리 가능



Reference


[책] 실전 카프카 개발부터 운영까지


This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.