오늘은 대량의 요청을 처리할 때 마주할 수 있는 Thundering Herd Problem에 대해 알아보려 한다. 우선 간단한 서버-클라이언트 구조의 예시를 보면 간단한 서버-클라이언트 구조 이렇게 클라이언트가 서버로 어떠한 요청을 보내면 서버는 응답하는 형식일 것이다.
여기서 서버는 같은 요청을 보내면 같은 응답을 보낸다고 가정할 것이다. 너무 많은 요청 하지만 요청이 너무 많다면?
서버의 응답 시간은 점점 지연될 것이고 Time-out도 발생할 것이다. 이러한 상황에서 해결책은 무엇일까?
바로 캐시이다. 캐시의 도입 캐시를 이용하면 Cache Miss가 일어날 경우에만 데이터를 원본 서버에 요청하기 때문에 원본 서버의 부하는 줄어들게 되고 Cache Hit일 경우엔 저장하고 있던 데이터를 반환만 해주면 되니 훨씬 더 좋은 성능을 얻을 수 있다.
하지만 안타깝게도 실상은 그렇지 않다. 캐시에 데이터가 하나도 존재하지 않는 경우를 생각해보자.
Thundering Herd Proble...
#
BE
#
Herd
#
Problem
#
Thundering
#
백엔드
#
서버
#
이론
#
캐시
#
컴퓨터
원문 링크 : Thundering Herd Problem