Kafka는 전통적인 메시지 브로커(예: RabbitMQ, ActiveMQ)를 대체할 수 있는 강력한 메시징 플랫폼입니다. 내장된 파티셔닝, 복제, 장애 허용성 덕분에 대규모 시스템에서도 안정적으로 메시지를 처리할 수 있습니다.
Kafka의 초기 목적은 웹사이트에서 발생하는 사용자 활동(페이지 뷰, 검색, 클릭 등)을 실시간으로 수집하고 분석하기 위함이었습니다.
운영 메트릭을 수집하고, 이를 중앙에서 집계 및 시각화하는 데 Kafka가 많이 사용됩니다.
Kafka는 기존의 로그 수집 시스템(Scribe, Flume 등)을 대체할 수 있으며, 다양한 로그 소스를 하나의 스트림으로 통합할 수 있습니다.
Kafka를 중심으로 구성된 데이터 파이프라인은 다단계 실시간 처리를 위한 훌륭한 기반이 됩니다. Kafka Streams, Apache Storm, Apache Samza 등 다양한 스트림 처리 프레임워크와 연동할 수 있습니다.
RSS 수집기 → Kafka (raw topic)
→ 정제/필터링 → Kafka (clean topic)
→ 개인화 추천 → Kafka (recommend topic)
Kafka는 애플리케이션의 상태 변화를 순차적인 이벤트로 저장하는 Event Sourcing 패턴의 저장소로 적합합니다.
Kafka는 분산 시스템의 외부 커밋 로그로 활용되어 데이터 복제 및 장애 복구 시 강력한 도구가 됩니다.