[Kafka] Kafka?

CHAN LIM·2024년 1월 15일
0

Kafka

목록 보기
1/13
post-custom-banner

Apache Kafka?

Stream 처리, 실시간 데이터 파이프라인 및 대규모 데이터 통합을 위한

오픈 소스 분산 이벤트 스트리밍 시스템
또는
오픈 소스 분산 Pub/Sub 메시징 플랫폼

  • 이벤트 스트리밍
    • DB, Sensor, 클라우드, 소프트웨어등등
      이벤트 소스에서 스트림형태로 실시간 데이터 캡쳐하는 방식
  • Pub/Sub 메시징 플랫폼 (MessageQueue)
    • 비동기 메시지를 사용한 각 프로그램 사이의 데이터 송수신을 구현
    • Kafka는 여러가지 역할 중 MQ처럼 메시지 브로커 역할 구현 가능

데이터를 생성하는 애플리케이션과 (Producer)
데이터를 소비하는 애플리케이션간의 (Consumer)
중재자 역할


Why Kafka?

Kafka 등장 이전

  • 데이터 아키텍쳐가 파편화
    • 즉, 시스템이 커질수록 복잡해지는 문제 발생

Kafka 등장 이후

  • 데이터 아키텍쳐가 Kafka로 인해 중앙 집중화
    • 심플한 구조로, 시스템이 커져도 데이터는 Kafka

Kafka 구조

  • Kafka Cluster
    • Kafka Broker들의 모임.
    • 확장성과 고가용성을 위한 클러스터링
    • Apache Zookeeper가 관리
      • 필수로 실행.
      • 메타데이터 저장.
  • Producer
    • 메시지(이벤트)를 발행하여 생산(Write)하는 주체
  • Consumer
    • 메시지(이벤트)를 구독하여 소비(Read)하는 주체
  • Broker
    • 클러스터 내에 존재하는 서버
    • Kafka 클라이언트와 데이터를 주고 받는 주체
    • 데이터 분산 저장 및 복제
    • 기본 3대 이상의 브로커 서버를 1개의 클러스터로 설정

  • Topic
    • 메시지를 구분하는 단위
  • Partition
    • 메시지를 저장하는 물리적인 파일
  • Offset
    • 지속적으로 증가하는 정수값을 가진 메타데이터

Kafka의 키 포인트 3.

다른 시스템에서 지속적으로 데이터 가져오기/내보내기를 포함하여
이벤트 스트림을 게시(쓰기)하고 구독(읽기)합니다.

원하는 시간 동안 이벤트 스트림을 지속적이고 안정적으로 저장합니다.

이벤트 스트림이 발생할 때 또는 후향적으로 처리합니다.


출처

공식문서
Kafka 알아보자

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향
post-custom-banner

0개의 댓글