Use Cases

숭맹이·2025년 4월 24일

1. 고성능 메시징 시스템

Kafka는 전통적인 메시지 브로커(예: RabbitMQ, ActiveMQ)를 대체할 수 있는 강력한 메시징 플랫폼입니다. 내장된 파티셔닝, 복제, 장애 허용성 덕분에 대규모 시스템에서도 안정적으로 메시지를 처리할 수 있습니다.

사용 시나리오

  • 생산자/소비자 간 완전 비동기 메시지 처리
  • 대용량 데이터 큐 처리
  • Latency는 낮고, Durability는 높은 환경이 필요한 경우

2. 웹사이트 사용자 활동 추적

Kafka의 초기 목적은 웹사이트에서 발생하는 사용자 활동(페이지 뷰, 검색, 클릭 등)을 실시간으로 수집하고 분석하기 위함이었습니다.

사용 시나리오

  • Page view, 클릭 로그 등을 토픽 단위로 분리해 저장
  • 실시간 대시보드 생성
  • 분석용 DWH(Hadoop, Redshift 등) 적재 파이프라인 구성

3. 운영 메트릭 및 모니터링 데이터 수집

운영 메트릭을 수집하고, 이를 중앙에서 집계 및 시각화하는 데 Kafka가 많이 사용됩니다.

사용 시나리오

  • 마이크로서비스에서 수집되는 상태 정보 및 성능 지표 수집
  • Prometheus, Grafana 등과 연계한 실시간 모니터링

4. 로그 집계(Log Aggregation)

Kafka는 기존의 로그 수집 시스템(Scribe, Flume 등)을 대체할 수 있으며, 다양한 로그 소스를 하나의 스트림으로 통합할 수 있습니다.

장점

  • 파일 단위가 아닌 이벤트 스트림으로 처리
  • 다양한 소스/서버에서 들어오는 로그를 하나의 토픽으로 집계
  • 빠른 소비자 확장이 가능

5. 스트림 처리 (Stream Processing)

Kafka를 중심으로 구성된 데이터 파이프라인은 다단계 실시간 처리를 위한 훌륭한 기반이 됩니다. Kafka Streams, Apache Storm, Apache Samza 등 다양한 스트림 처리 프레임워크와 연동할 수 있습니다.

예시

RSS 수집기 → Kafka (raw topic)
 → 정제/필터링 → Kafka (clean topic)
 → 개인화 추천 → Kafka (recommend topic)

6. 이벤트 소싱 (Event Sourcing)

Kafka는 애플리케이션의 상태 변화를 순차적인 이벤트로 저장하는 Event Sourcing 패턴의 저장소로 적합합니다.

사용 시나리오

  • 도메인 객체의 상태 변경 이력을 전체 저장
  • 재현 가능한 시스템 상태 관리

7. 분산 시스템의 커밋 로그

Kafka는 분산 시스템의 외부 커밋 로그로 활용되어 데이터 복제 및 장애 복구 시 강력한 도구가 됩니다.

관련 기능

  • 로그 압축(Log Compaction): 최신 상태만 유지하면서도 이벤트 로그의 무결성을 보장
  • Apache BookKeeper와 유사한 사용 방식
profile
👨🏻‍💻 Backend Developer

0개의 댓글