게시글 조회 시마다 viewCount
를 DB에 실시간 업데이트하고 있었습니다.
트래픽이 증가하면서 다음과 같은 문제가 발생했습니다:
증상 | 설명 |
---|---|
성능 저하 | UPDATE 쿼리가 급증하여 DB 응답 지연 |
자원 낭비 | 잦은 DB 커넥션 사용 및 디스크 쓰기 부하 |
병목 발생 | 다른 트랜잭션 응답까지 지연됨 |
확장성 문제 | 멀티 인스턴스 간 조회수 동기화가 어려움 |
시도한 방법 | 결과 | 비고 |
---|---|---|
@Version 사용 |
실패 | 충돌은 줄었지만 여전히 실시간 DB write |
비동기 처리 | 부분 개선 | 응답 속도는 향상되지만 write 횟수 그대로 |
Redis 도입 | 보류 | 단일 인스턴스 환경이라 우선순위 낮음 |
조회 시 캐시에 조회수를 누적 저장하고,
3분마다 DB에 일괄 업데이트 후 캐시 초기화하는 구조로 전환.