Kafka

Apache Kafka 에 대해 알아보기

황동리 2025. 8. 6. 14:36
반응형

Apache Kafka 란?

Apache Kafka는 고성능의 분산 메시징 시스템으로, 대규모의 데이터를 실시간으로 처리하고 전달하는 데 최적화된 플랫폼 입니다.


흔히 실시간 로그 수집, 이벤트 스트리밍, 데이터 파이프라인 구성 등에 사용됩니다.


Kafka 구성

Kafka는 고성능 TCP 네트워크 프로토콜을 통해 통신하는 서버클라이언트 로 구성된 분산 시스템입니다.


서버 :

  • Kafka는 하나 이상의 서버로 구성된 클러스터로 실행됩니다.
  • 서버 중 일부는 브로커라고 하는 스토리지 계층을 구성합니다.
  • 다른 서버는 Kafka Connect를 실행하여 이벤트 스트림으로 데이터를 지속적으로 가져오고 내보내 Kafka를 관계형 데이터베이스 및 다른 Kafka 클러스터와 같은 기존 시스템과 통합합니다.
  • Kafka 클러스터는 높은 확장성과 내결함성을 제공합니다. 서버에 장애가 발생하더라도 다른 서버가 해당 작업을 인계받아 데이터 손실 없이 지속적인 운영을 보장합니다.

클라이언트 :

  • 네트워크를 통해 브로커(서버)와 통신 합니다.
  • 이벤트 스트림을 생성(Produce)*, 읽기(Consume), 처리(Process) 하는 역할.

Kafka 기본 구조

  • Producer(프로듀서): 데이터를 생성해서 카프카로 보내는 역할(예: 로그, 트랜잭션 데이터 등).
  • Broker(브로커): 카프카 서버, 데이터를 저장하고 관리(여러 대로 클러스터 구성).
  • Topic(토픽): 데이터가 저장되는 논리적 구분(예: “order-log”, “user-activity” 등).
  • Partition(파티션): 토픽을 여러 개의 물리적 저장 단위로 나눔(확장성과 병렬성↑).
  • Consumer(컨슈머): 데이터를 읽어가는 역할(데이터 소비, 분석 등).
  • Consumer Group(컨슈머 그룹): 여러 컨슈머가 협력해 데이터를 나눠서 읽음.

구조를 보면 아래 그림과 같습니다.


동작 방식에 대해 간단히 정리를 하자면, 아래와 같습니다.

  1. Producer가 데이터를 생성해 Kafka Broker의 특정 Topic으로 전송
  2. Broker 서버로 전송된 메시지는 Topic의 Partition에 저장
  3. Consumer는 Topic/Partition에서 메시지를 가져 갑니다.
  4. Zookeeper는 클러스터의 메타데이터 관리, Broker/Partition 상태 감시, 리더 Broker 선출 등 관리 역할을 합니다.


✅ Kafka 핵심 요약

  • Apache Kafka는 대용량 데이터를 빠르고 안정적으로 실시간 처리할 수 있는 분산 메시징 플랫폼입니다.
  • Producer가 데이터를 보내면, Kafka는 Broker를 통해 데이터를 Topic의 여러 Partition에 분산 저장하고,
  • Consumer는 필요한 데이터를 직접 읽어가는(Pull) 방식으로 동작합니다.
  • Zookeeper(또는 최신 KRaft 모드)는 Kafka 클러스터의 메타데이터와 장애 복구, 리더 선출을 관리합니다.
  • Kafka는 높은 확장성, 내결함성, 다양한 연동성을 바탕으로 실시간 데이터 파이프라인, 로그 수집, 이벤트 스트림 처리 등 다양한 분야에서 활용되고 있습니다.
반응형

'Kafka' 카테고리의 다른 글

Strimzi Kafka 설치  (1) 2025.08.13
Strimzi kafka 란?  (2) 2025.08.11