
428
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
TPS 1만 이상 약관 서버의 캐시 적용 사례
이 게시물은 토스뱅크 약관 서버에 TPS가 급증하면서 발생한 DB 부하 문제를 해결하기 위해 캐시를 적용한 과정을 설명합니다.문제 정의 및 접근
- 약관 동의 여부는 Strong Consistency가 필수적인 개인정보 관련 데이터
- Replication DB는 복제 지연 문제로 사용하지 않고 Redis Cache를 활용
- Look-aside 캐시 전략과 Spring 트랜잭션 이벤트를 이용해 캐시 만료를 DB 커밋 후 처리
문제 해결과 개선
- 캐시 만료 실패 시 Circuit Breaker로 자동 오픈하여 DB 조회로 대체하는 방어 전략 적용
- Kafka 이벤트와 캐시 만료 처리 순서 문제를 트랜잭션 동기화와 @Order로 해결
- 정책적으로 API 응답 시점과 캐시 만료 시점을 맞추어 데이터 불일치 문제 최소화
배운 점과 결론
- 코드보다 정책으로 문제를 단순하게 해결하는 중요성
- 완벽보다는 실행에 집중하며 모니터링과 개선을 지속하는 자세
- 현재는 최대 2만 TPS를 안정적으로 처리하며 향후 더 효율적 트래픽 관리를 위한 추가 기술도 검토 중