Rate limit은 말 그래도 요청의 한계를 주는 것이다. 한계를 주는 이유는 Dos 공격처럼 가용성 공격을 주는 공격 기법이나 트래픽 급증으로 인한 서버 다운을 막는 것이다. 주요 방식으로는 4가지가 있다.
- Fixed window
- 정해진 시간 (간격)을 넘어서 요청을 하지 못하게 한다.
- 짧은 시간에 많이 들어오는 요청을 막지 못하는 케이스가 있음
- Sliding window
- Fixed window를 개선하여 window 위치를 바꿔 단점을 보완
- Leaky bucket
- 아무리 많은 요청이 들어와도 결국 물방울 만큼 통신이 나가는 알고리즘
- Token bucket
- 버킷을 채울 수 있는 토큰을 발급하고 토근의 양만큼 요청을 처리하는 알고리즘