Kafka 도입 검토 사례

기술 의사결정 과정을 문서화한 실전 사례입니다.

배경

문제 상황

  • API 간 동기 호출로 인한 병목
  • 주문 완료까지 500ms 소요
  • 서비스 장애 전파

해결 방안 모색

  • 방안 1: 기존 RPC 개선
  • 방안 2: RabbitMQ 도입
  • 방안 3: Kafka 도입

검토 과정

1. 요구사항 정의

## 비기능 요구사항
- 처리량: 1000 TPS
- 레이턴시: 100ms 이하
- 순서 보장: 필요
- 정확성: Exactly-Once

2. 기술 비교

항목 RabbitMQ Kafka
처리량 10K TPS 100K+ TPS
순서 보장 큐 내 파티션 내
확장성 중간 높음
운영 복잡도 낮음 높음

3. PoC 결과

## Kafka PoC

### 성능
- 800 TPS 달성
- 평균 레이턴시: 80ms

### 순서 보장
- 키 기반 파티셔닝으로 해결

### 운영
- UI 도구로 모니터링 가능

결정

선택: Kafka

사유

  1. 높은 처리량 요구
  2. 미래 확장성 고려
  3. 생태계 성숙도

위험 완화

  • 팀 교육
  • 전담 인원 배정
  • 모니터링 강화

결과

도입 후

  • 주문 처리: 500 TPS → 1000 TPS
  • 응답 시간: 500ms → 150ms
  • 서비스 결합도 감소

문서

---
title: "Kafka 도입 의사결정"
date: 2024-12-01
---

→ [[27-case-virtual-threads Virtual Threads 학습]]