피드로 돌아가기
Dev.toInfrastructure
원문 읽기
State 중심의 Batch 한계를 극복한 Event-Driven 로그 기반 분산 스트리밍 설계
Apache Kafka Explained: A Practical Beginner Guide for Data Engineers
AI 요약
Context
기존 Batch Pipeline의 상태 기반 데이터 처리 구조로 인한 실시간 대응 불가 문제 발생. 특히 Fraud Detection이나 Real-time Recommendation과 같이 즉각적인 이벤트 반응이 필요한 비즈니스 요구사항 충족에 한계 노출.
Technical Solution
- Immutable Event Log 구조를 통한 상태 변화의 이력 보존 및 데이터 무결성 확보
- Partitioning 전략을 통한 데이터 분산 저장 및 Consumer의 병렬 처리 성능 극대화
- Key-based Partitioning 설계를 통한 특정 엔티티의 이벤트 순서 보장(Ordering Guarantee)
- Offset 기반의 Consumer 상태 관리로 개별 서비스의 독립적 데이터 소비 및 Replay 가능 구조 구현
- Schema Registry 및 Avro 도입을 통한 Producer와 Consumer 간의 데이터 계약(Contract) 강제 및 하위 호환성 유지
- Replication Factor 3 설정을 통한 Broker 장애 시에도 데이터 가용성을 보장하는 고가용성 설계
실천 포인트
- 데이터 순서 보장이 필요한 경우 엔티티 ID 기반의 Partition Key 설정 검토 - 메시지 유실 방지가 필수적인 결제/주문 시스템의 경우 Manual Offset Commit 적용 - 운영 환경의 데이터 안정성 확보를 위한 Replication Factor 3 설정 준수 - 데이터 구조 변경에 따른 Consumer 장애 방지를 위해 JSON 대신 Avro 등 Schema 기반 포맷 채택 - 단순 일회성 Batch 처리가 목적일 경우 Kafka 대신 Airflow 기반의 단순 파이프라인 고려