콘텐츠로 바로가기

Event Streaming & Kafka Dynamics

방대한 양의 실시간 데이터를 순차적으로 기록하고 분산 처리하는 이벤트 스트리밍 시스템의 내부 물리 구조와 아파치 카프카의 파티셔닝 및 복제 메커니즘을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

이벤트 스트리밍 및 카프카 역학(Event Streaming & Kafka Dynamics, EKD)은 일회성 메시지 전달을 넘어, 시스템에서 발생하는 모든 사건(Event)을 거대한 '분산 로그'로 영구히 기록하고 실시간으로 재생산하는 데이터 흐름 공학입니다.

학습자는 데이터를 여러 조각으로 나누어 하드웨어 병렬 처리를 극대화하는 **파티셔닝(Partitioning)**의 수리 모델과, 메시지의 위치를 나타내는 **오프셋(Offset)**의 물리적 관리 기제를 배웁니다. 특히, 여러 대의 서버에 데이터를 복제하여 장애 시에도 소실을 막는 **리플리케이션(Replication)**의 합의 물리학과, 1초에 수백만 개의 이벤트를 소화하기 위한 제로 카피(Zero-copy) 하드웨어 가속 원리를 익힙니다. 이를 통해 '데이터의 강'을 설계하고, 대규모 분산 아키텍처의 신경망을 구축하는 하이엔드 스트리밍 솔루션 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • Distributed Commit Log: 추가만 가능한(Append-only) 물리적 로그 저장소 모델
  • Kafka Architecture: Broker, Producer, Consumer Group, Zookeeper/KRaft의 수리적 결합
  • Partitioning & Ordering: 키 기반 해싱을 통한 데이터 분산 및 파티션 내 순서 보장 물리학
  • Replication Ethics: ISR(In-Sync Replicas)과 리더 선출의 물리적 가용성 수순
  • Consumer Mechanics: 오프셋 커밋(Commit)과 리밸런싱(Rebalancing)의 수리적 상태 전이

Out-of-Scope

  • 데이터 처리 라이브러리(Kafka Streams, Flink)의 구체적인 연산 알고리즘 (별도 처리 노드에서 분담)
  • 브로커 하드웨어의 전용 리눅스 OS 커널 파라미터 최적화 (03-01-XX 영역에서 분담)

Boundaries

  • EKD vs. Message Queues: MQB(08-04-01)가 '메시지 소비 후 삭제'라는 소멸성 물리에 집중한다면, EKD는 '로그 보관 및 재사용'이라는 지속성 물리에 집중하여 시스템 성격을 구분합니다.

3. Counterexample

  • 단순히 "빠른 메시징 도구"라 설명하는 것은 EKD 학습이 아닙니다. 왜 카프카가 데이터베이스처럼 디스크를 사용하면서도 일반적인 큐보다 수치적으로 가공할 만한 처리량을 내는지 'Sequential I/O'와 'Page Cache'의 물리적 상호작용으로 증명할 수 있어야 하며, 파티션 숫자를 늘리는 행위가 물리적으로 리밸런싱 지연(StoptheworldStop-the-world)을 어떻게 초래하는지 논증하지 못한다면 카프카의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Message Queues & Broker Physics (Basic): 비동기 통신 및 브로커 기초 이해가 필수입니다. (08-04-01 MQB)
  • Computer Architecture Fundamentals (Recommended): 디스크 I/O 및 메모리 캐시 물리학 이해가 권장됩니다. (01-01-XX)

5. Learning Map

  1. The Log Vision: 데이터를 '전달 대상'이 아닌 '영구 기록될 시간의 흔적'으로 바라보는 관점을 세웁니다.
  2. Infinite Scaling: 파티션을 쪼개고 하드웨어를 늘려 대역폭을 무한에 가깝게 확장하는 수리 수순을 익힙니다.
  3. Resilient Agreement: 복제본들 사이에서 '누가 진짜 데이터의 주인인가'를 가리는 물리적 합의를 배웁니다.
  4. Massive Flow: 초당 기가비트의 데이터를 소리 없이 처리하는 하이엔드 파이프라인을 완성합니다.

6. Learning Topics

Basic

Core: 스트리밍 시스템의 분산 로그 구조 (Stream Foundations)

  • Why to Learn: 현대 대규모 데이터 처리가 왜 큐가 아닌 로그 시스템을 택하는지 이해하기 위해서입니다.
  • What to Learn:
    • Immutability: 수정 불가능하고 추가만 되는 로그의 물리적 안정성
    • Offset Concept: 로그 파일 내에서의 위치를 나타내는 수리적 주소
    • Retention Policy: 기간 혹은 용량에 따른 데이터 파기 물리 규칙
  • How to Learn:
    • 카프카 로그 디렉토리를 열어 실제 .log 파일에 비트 데이터가 어떻게 쌓이는지 확인 실습
    • 오프셋을 역방향으로 돌려 과거 데이터를 다시 읽어오는(ReplayReplay) 물리 시뮬레이션
  • Implement: 데이터에 일련번호를 붙여 파일에 순차 기록하는 기초 SequentialLogger

Core: 카프카 아키텍처와 파티셔닝 (Kafka Topology)

  • Why to Learn: 단일 서버의 한계를 넘어 데이터 부하를 여러 하드웨어로 수리적으로 분산하기 위함입니다.
  • What to Learn:
    • Topic & Partition: 수평 확장을 위한 논리적/물리적 데이터 분할 모델
    • Producer Ack Logic: 0, 1, all 에 따른 데이터 손실률 vs 성능의 물리 트레이드오프
    • Key-based Hashing: 동일 키 패킷을 동일 파티션으로 보내는 수리적 매핑
  • How to Learn:
    • 3대의 브로커로 클러스터를 구성하고, 특정 파티션에만 트래픽을 몰리게 유도하여 하드웨어 부하 측정 실습
    • 키를 지정하지 않았을 때 라운드-로빈 방식으로 데이터가 분배되는 수리 분포 확인
  • Implement: 입력 문자열을 해싱하여 파티션 번호를 결정하는 MurmurHasher

Practical

Core: 복제와 가용성 모델 (Replication Physics)

  • Why to Learn: 서버 한 대가 물리적으로 폭발해도 데이터가 1비트도 새어나가지 않게 설계하기 위해서입니다.
  • What to Learn:
    • Leader & Follower: 쓰기와 읽기를 담당하는 하드웨어 위계 구조
    • ISR (In-Sync Replicas): 리더와 완벽히 동기화된 건강한 대역의 수리적 식별
    • High Watermark: 소비자가 읽을 수 있는 데이터의 물리적 안전선(CommitCommit 지점)
  • How to Learn:
    • 리더 노드를 강제로 정지하고, 새로운 리더가 선출되는 과정의 시스템 지연 수치(DowntimeDowntime) 측정 실습
    • ISR에서 제외된 노드가 복구되어 다시 동기화를 맞추는 '물리적 추격(CatchupCatch-up)' 관찰
  • Implement: 여러 노드의 응답을 취합하여 정족수(QuorumQuorum) 충족 여부를 판단하는 ReplicationMonitor

Advanced

Core: 컨슈머 그룹과 고성능 최적화 (Consumer Governance)

  • Why to Learn: 수천 명의 소비자가 동시에 데이터를 가져갈 때 발생하는 물리적 충돌과 병목을 해결하기 위함입니다.
  • What to Learn:
    • Consumer Group & Rebalance: 파티션 소유권을 자동으로 재배분하는 수리 알고리즘
    • Zero-copy (sendfile): 커널 버퍼에서 NIC로 바로 쏘는 하드웨어 가속 물리학
    • Batching Mechanics: 패킷 조각이 아닌 덩어리 전송을 통한 네트워크 오버헤드 감소
  • How to Learn:
    • 컨슈머를 추가/제거할 때 발생하는 '리밸런싱' 시간 동안 전송이 멈추는 물리 현상 분석 실습
    • 배치 크기(BatchSizeBatch Size) 변경에 따른 하드웨어 초당 전송량(ThroughputThroughput) 시계열 데이터 산출
  • Implement: 오프셋 저장소를 주기적으로 서버에 기록하고 관리하는 OffsetTracker

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Partition 토픽을 수평으로 나눈 최소 단위로, 카프카 병렬 처리의 물리적 토대입니다. 기본 확장 단위 Sharding / Scalability Topic 파티션 간 순서 보장 안됨 Industry core
Consumer Group 여러 개의 컨슈머를 하나로 묶어 파티션 데이터를 나누어 처리하는 논리적 단위입니다. 추천 분산 처리 Rebalance / Parallel Worker 그룹 내 1파티션=1컨슈머 Industry core
Offset 파티션 내에서 메시지에 할당되는 고유하고 연속적인 수리적 식별 번호입니다. 기본 위치 정보 Commit / Pointer Index 전역 식별자 아님 P1:CS2023 core
Zero-copy 애플리케이션 계층에서의 복사 없이 OS 커널 영역에서 바로 데이터를 전송하는 하드웨어 가속 기법입니다. 실무 성능 극대화 Kernel / DMA sendfile / NIC 카프카 고성능의 핵심 Industry core

8. References

Primary

Secondary

  • [Kafka: The Definitive Guide] Gwen Shapira — The industry standard book.
  • [Designing Data-Intensive Applications] Martin Kleppmann — Chapter on stream processing.

Industry

  • [Apache Kafka: Documentation - Design] — Internal physics details.
  • [Confluent: Kafka Architecture Illustrated] — Visualizing data flow.

9. Final Checklist

Primary

  • '메시지 큐(RabbitMQ)'와 '이벤트 스트림(Kafka)'의 물리적 저장 방식 차이가 성능에 미치는 수리적 영향을 설명 가능한가? (P1)
  • '파티셔닝'을 통해 얻는 하드웨어 병렬성의 수치적 이득을 시스템 설계 관점에서 기술할 수 있는 가? (P1)

Secondary

  • '제로 카피' 기술이 왜 카프카의 네트워크 처리량을 일반적인 소켓보다 수배 이상 높이는지 물리학적으로 소통 가능한가?
  • 오프셋 커밋 방식(자동 vs 수동)이 시스템 장애 시 '데이터 유실 혹은 중복'에 미치는 수리적 확률을 논증할 수 있는 가?

Industry

  • 엔터프라이즈 환경에서 '컨슈머 그룹 리밸런싱' 지연을 최소화하기 위한 하드웨어 분산 배치 전략을 제안할 수 있는 가? (SFIA)
  • 리더 브로커 장애 시, ISR 그룹이 물리적 가용성(AvailabilityAvailability)을 어떻게 지켜내는지 시나리오 분석을 할 수 있는 가?