Kafka 기본 개념

김지우·2023년 11월 20일

1. 기본 개념

kafka란?

  • 고성능, 고가용성을 제공하는 분산 스트리밍 플랫폼. 주로 대용량의 실시간 데이터 스트림을 처리, 데이터 파이프라인을 구축
  • 용도: 실시간 메시지 큐, 로그 수집, 스트림 처리에 활용

2. 아키 텍처

분산시스템

  • Kafka는 분산시스템으로 설계되어 있어 높은 처리량, 스케일아웃 가능
  • Broker: Kafka 클러스터는 하나 이상의 서버(broker)로 구성. 각 브로커는 스트림의 데이터를 저장하고 처리

3. 데이터 모델

Topic
=> 데이터 스트림은 '토픽(Topic)'이라 불리는 카테고리나 피드로 구분.

  • 각토픽은 여러 레코드(메시지)를 포함할 수 있음

Partition
=> 토픽은 성능과 병렬처리를 위해 파티션으로 나뉨.
=> 각 파티션은 순서가 지정된 불변의 레코드들의 집합

4. 주요 구성 요소

Producer

  • 데이터의 생산자로, Kafka 시스템에 데이터를 보내는 역할을 함.
  • Producer는 하나 이상의 kafak 토픽에 데이터를 게시(Publish)함

Consumer

  • 데이터의 소비자로, Kafka 시스템으로 부터 데이터를 받아가는 역할을 함.
  • Consumer는 하나 이상의 토픽에서 데이터를 구독(subscribe)하고 처리.

Broker

  • Kafka 서버를 의미. 데이터의 저장과 전송을 관리.
  • 클러스터를 형성하여 고가용성과 확장성을 제공

Zookeeper

  • Kafka의 클러스터 구성, 리더 선출, 메타데이터 관리 등을 위헤 사용
  • 분산 환경을 안정적으로 관리하는데 필요
profile
프로그래밍 기록 + 공부 기록

0개의 댓글