피드로 돌아가기
Dev.toBackend
원문 읽기
Race Condition 및 Traffic Spike 대응을 위한 Backend 아키텍처 설계
Chia sẽ câu hỏi pv backend dev
AI 요약
Context
이커머스 환경에서 발생하는 동시성 제어 실패로 인한 재고 마이너스 현상과 Webhook 유실에 따른 주문 상태 불일치 문제가 발생함. 또한 Flash Sale 시 발생하는 급격한 Traffic Spike로 인한 Database 과부하 및 시스템 다운타임 위험이 상존함.
Technical Solution
- Pessimistic Locking 도입을 통한 DB Transaction Isolation 보장으로 Race Condition 해결
- SELECT FOR UPDATE 쿼리를 통한 데이터 행 잠금으로 동시 요청 시 순차적 처리 강제 및 데이터 Consistency 유지
- Cron Job 기반의 Active Polling 메커니즘을 구축하여 Webhook 수신 실패 시 VNPay API를 통한 주문 상태 강제 동기화
- Redis In-memory Caching 레이어 구축을 통한 정적 데이터 조회 경로 최적화 및 DB Query 부하 분산
- IP 기반 Rate Limiting 설정으로 DDoS 및 Bot Spam 요청 차단 및 서버 가용성 확보
실천 포인트
1. 재고 관리 등 강한 일관성이 필요한 도메인에 Pessimistic Locking 적용 여부 검토
2. Webhook 기반 비동기 통신 설계 시 반드시 재시도 로직이나 Active Polling 보완책 마련
3. 읽기 요청이 집중되는 Flash Sale 이벤트 전 Redis Cache 전략 및 Rate Limit 임계치 설정