Skip to content
Tools/레이트 리밋 알고리즘 시뮬레이터

레이트 리밋 알고리즘 시뮬레이터

Rate Limit Algorithm Simulator

같은 트래픽을 고정 윈도, 슬라이딩 로그, 슬라이딩 카운터, 토큰 버킷에 동시에 흘려보내고 결과를 비교합니다. 고정 윈도가 경계에서 한도의 두 배를 통과시키는 장면을 직접 확인하고, 요청별 Retry-After 값까지 얻으세요.

트래픽 시나리오

알고리즘 비교

고정 윈도의 경계 버스트

한도가 60초당 5건인데, 경계 직전과 직후에 몰아치면 60초 구간 안에 최대 10건이 통과합니다. 카운터가 벽시계 경계에서 리셋되기 때문입니다. 설정값은 그대로인데 실제로 백엔드가 맞는 부하는 두 배입니다.

슬라이딩 로그와 토큰 버킷은 같은 트래픽에서 한도를 정확히 지킵니다. 슬라이딩 카운터는 근사치라 한두 건 넘칠 수 있지만, 두 배가 새는 것과는 차원이 다릅니다. 위 비교표의 "한 윈도 안 최대 통과" 값을 직접 비교해 보세요.

요청별 판정고정 윈도

시각판정잔여Retry-After윈도
59.00s통과4#0
59.01s통과3#0
59.02s통과2#0
59.03s통과1#0
59.04s통과0#0
61.00s통과4#1
61.01s통과3#1
61.02s통과2#1
61.03s통과1#1
61.04s통과0#1

실제 배포에서 더 확인할 것

  • · 분산 환경에서는 인스턴스마다 카운터를 따로 들면 실효 한도가 인스턴스 수만큼 곱해집니다. Redis 같은 공유 저장소가 필요합니다.
  • · 429를 돌려줄 때 Retry-After를 같이 주지 않으면 클라이언트는 즉시 재시도합니다. 아래 표의 Retry-After 값이 그 응답에 넣어야 할 숫자입니다.
  • · 이 시뮬레이터는 요청 시각만 다룹니다. 실제로는 처리 시간, 시계 어긋남, 저장소 지연이 더해져 경계가 더 흐려집니다.