피드로 돌아가기
Dev.toBackend
원문 읽기
Apache Kafka 도입을 통한 결제 시스템 처리량 25% 향상
How We Improved Payment System Throughput by 25% Using Apache Kafka at a Fortune 500 FinTech
AI 요약
Context
수백만 건의 일일 트랜잭션을 처리하는 레거시 synchronous REST API 구조로 인한 서비스 간 강한 결합 발생. 특정 서비스의 지연이 전체 체인으로 전이되는 병목 현상 및 단일 장애 지점(SPOF)으로 인한 결제 실패 위험 상존.
Technical Solution
- Event Driven Architecture 전환을 통한 Authorization 서비스와 하위 서비스 간의 물리적·논리적 디커플링 구현
- ACKS_CONFIG="all" 및 ENABLE_IDEMPOTENCE_CONFIG=true 설정을 통한 금융 데이터의 무손실 전송 및 중복 메시지 방지
- transactionId를 Message Key로 지정하여 파티션 내 순서 보장 및 트랜잭션 일관성 유지
- ENABLE_AUTO_COMMIT_CONFIG=false 설정을 통한 수동 Offset 커밋 방식으로 처리 완료 시점에 대한 정밀 제어
- processed_transactions 테이블을 활용한 Idempotency 검증 로직 구현으로 네트워크 재시도에 따른 중복 처리 원천 차단
- 트래픽 예측치에 기반한 12개 파티션 설계를 통한 Consumer 병렬 처리 최적화
Impact
- 전체 시스템 처리량(Throughput) 25% 개선
- 서비스 간 독립적 스케일링 가능 구조 확보로 리소스 효율성 증대
실천 포인트
1. 금융 데이터 처리 시 Producer의 Idempotence 설정 및 ACKS="all" 적용 여부 확인
2. 순서 보장이 필요한 데이터는 적절한 Business Key를 선정하여 동일 파티션 할당 유도
3. Consumer Lag 모니터링 임계치(예: 1,000건) 설정 및 알람 체계 구축
4. 중복 메시지 처리를 위한 DB 기반의 Idempotency Table 도입 검토
5. 초기 파티션 설계 시 확장 가능성을 고려한 적정 수치 산정