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'의 물리적 상호작용으로 증명할 수 있어야 하며, 파티션 숫자를 늘리는 행위가 물리적으로 리밸런싱 지연()을 어떻게 초래하는지 논증하지 못한다면 카프카의 본질을 이해하지 못한 것입니다.
4. Prerequisites
- Message Queues & Broker Physics (Basic): 비동기 통신 및 브로커 기초 이해가 필수입니다. (08-04-01 MQB)
- Computer Architecture Fundamentals (Recommended): 디스크 I/O 및 메모리 캐시 물리학 이해가 권장됩니다. (01-01-XX)
5. Learning Map
- The Log Vision: 데이터를 '전달 대상'이 아닌 '영구 기록될 시간의 흔적'으로 바라보는 관점을 세웁니다.
- Infinite Scaling: 파티션을 쪼개고 하드웨어를 늘려 대역폭을 무한에 가깝게 확장하는 수리 수순을 익힙니다.
- Resilient Agreement: 복제본들 사이에서 '누가 진짜 데이터의 주인인가'를 가리는 물리적 합의를 배웁니다.
- Massive Flow: 초당 기가비트의 데이터를 소리 없이 처리하는 하이엔드 파이프라인을 완성합니다.
6. Learning Topics
Basic
Core: 스트리밍 시스템의 분산 로그 구조 (Stream Foundations)
- Why to Learn: 현대 대규모 데이터 처리가 왜 큐가 아닌 로그 시스템을 택하는지 이해하기 위해서입니다.
- What to Learn:
- Immutability: 수정 불가능하고 추가만 되는 로그의 물리적 안정성
- Offset Concept: 로그 파일 내에서의 위치를 나타내는 수리적 주소
- Retention Policy: 기간 혹은 용량에 따른 데이터 파기 물리 규칙
- How to Learn:
- 카프카 로그 디렉토리를 열어 실제
.log파일에 비트 데이터가 어떻게 쌓이는지 확인 실습 - 오프셋을 역방향으로 돌려 과거 데이터를 다시 읽어오는() 물리 시뮬레이션
- 카프카 로그 디렉토리를 열어 실제
- Implement: 데이터에 일련번호를 붙여 파일에 순차 기록하는 기초
SequentialLogger
Recommended
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: 소비자가 읽을 수 있는 데이터의 물리적 안전선( 지점)
- How to Learn:
- 리더 노드를 강제로 정지하고, 새로운 리더가 선출되는 과정의 시스템 지연 수치() 측정 실습
- ISR에서 제외된 노드가 복구되어 다시 동기화를 맞추는 '물리적 추격()' 관찰
- Implement: 여러 노드의 응답을 취합하여 정족수() 충족 여부를 판단하는
ReplicationMonitor
Advanced
Core: 컨슈머 그룹과 고성능 최적화 (Consumer Governance)
- Why to Learn: 수천 명의 소비자가 동시에 데이터를 가져갈 때 발생하는 물리적 충돌과 병목을 해결하기 위함입니다.
- What to Learn:
- Consumer Group & Rebalance: 파티션 소유권을 자동으로 재배분하는 수리 알고리즘
- Zero-copy (sendfile): 커널 버퍼에서 NIC로 바로 쏘는 하드웨어 가속 물리학
- Batching Mechanics: 패킷 조각이 아닌 덩어리 전송을 통한 네트워크 오버헤드 감소
- How to Learn:
- 컨슈머를 추가/제거할 때 발생하는 '리밸런싱' 시간 동안 전송이 멈추는 물리 현상 분석 실습
- 배치 크기() 변경에 따른 하드웨어 초당 전송량() 시계열 데이터 산출
- Implement: 오프셋 저장소를 주기적으로 서버에 기록하고 관리하는
OffsetTracker
7. Terminology
8. References
Primary
- [P1] CS2023 - NC/Networking and Communication (Network applications / Information models) — Information flow.
- [P2] SWEBOK v4.0 - Software Design / Software Structure and Architecture (Event-driven systems) — Performance context.
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 그룹이 물리적 가용성()을 어떻게 지켜내는지 시나리오 분석을 할 수 있는 가?