본문 바로가기
DataOps/Kafka

[Kafka] 카프카란?

by BenKangKang 2023. 3. 10.

Kafka?

링크드인 사내 프로그램에서 출발하여 정식 Apache 오픈소스로 등록된 분산 이벤트 스트리밍 플랫폼

Architecture

간단히 알아보기

이름 설명

주키퍼(ZooKeeper) 카프카의 메타데이터(metadata) 관리 및 브로커의 정상상태 점검(health check)을 담당합니다.
카프카(Kafka) 또는 카프카 클러스터(Kafka cluster) 아파치 프로젝트 애플리케이션 이름입니다. 여러 대의 브로커를 구성한 클러스터를 의미합니다.
브로커(broker) 카프카 애플리케이션이 설치된 서버 또는 노드를 말합니다.
프로듀서(producer) 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭합니다.
컨슈머(consumer) 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭합니다.
토픽(topic) 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유합니다.
파티션(partition) 병렬 처리 및 고성능을 얻기 위해 하나의 토픽을 여러 개로 나눈 것을 말합니다.
세그먼트(segment) 프로듀서가 전송한 실제 메시지가 브로커의 로컬 디스크에 저장되는 파일을 말합니다.
메시지(message) 또는 레코드(record) 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는 데이터 조각을 말합니다.

특징

  • Producer와 Consumer의 분리 (Pub / Sub 방식)
  • 멀티 Producer, 멀티 Consumer
  • Disk에 메시지 저장
  • 용이한 확장성
  • 분산 처리, 배치 처리 등 다양한 기법을 사용한 높은 성능
  • 컨슈머 Pull 방식(다른 메시지 브로커들과의 차이)

활용 용도

  • 로그 시스템
  • Event Driven Architecture
  • 메세지 큐

 

참고

책 -카프카 실전부터 운영까지

댓글