고정부하¶
해결하고 싶은 문제¶
순간적으로 접속자가 폭증할 경우 원본 장애가 빈번하다. 랭킹, 검색, 핫딜, 항공권 등 특정 시간에 오픈되는 서비스에 이런 경우가 많다.
솔루션/패턴 설명¶
순간적으로 발생한 동일한 요청에 대해 최초의 결과를 공유한다. TTL(Time To Live)을 0으로 설정하면 원본서버의 1트랜잭션 시간동안(1ms 내외)만 결과는 유효하다.
M2
는 최초의 요청만 원본서버로 보낸다.
응답은 대기 중인 모든 클라이언트에게 공유됨과 동시에 만료된다. (=유효하지 않다.)
이 과정의 반복을 통해 접속자 수와 무관하게 원본부하를 고정시킨다.
구현¶
장점/효과¶
백엔드 부하를 고정/예측할 수 있어 서비스 안정성이 높아진다.
주의점¶
읽기에는 적합하나 쓰기에는 사용할 수 없다.
휘발성이 높은 콘텐츠에 대해서는 Memory-Only 모드 를 권장한다.
기타¶
로그인한 개인 페이지라도 공유할 수 있는 영역에 대해서는 AJAX
로 분리하는 것이 효과적이다.