%@ page language="java" contentType="text/html; charset=utf-8"%>
유량제어는 Token Bucket 알고리즘 기반으로 동작합니다. 설정된 임계치만큼 토큰이 균등하게 리필되며, 요청 1건당 토큰 1개를 소비합니다. 토큰이 부족하면 요청이 거부됩니다.
토큰은 설정된 시간이 지난 후 한꺼번에 리필되는 것이 아니라, 매 순간 균등하게 리필됩니다.
| 시간 | 상황 | 토큰 수 |
|---|---|---|
| 10:00:00 | 초기 상태 (만땅) | 120개 |
| 10:00:01 | 요청 10건 처리 | 110개 |
| 10:00:02 | 1초 경과 → 2개 리필 | 112개 |
| 10:00:03 | 1초 경과 → 2개 리필 | 114개 |
| 10:00:04 | 1초 경과 → 2개 리필 | 116개 |
| 10:00:05 | 1초 경과 → 2개 리필 | 118개 |
| 10:00:06 | 1초 경과 → 2개 리필 (복구 완료) | 120개 |
※ 10건 소비 후 5초만에 복구됨 (10건 ÷ 초당2건 = 5초)
1초 단위의 순간적인 트래픽 급증(spike)을 방어합니다.
장시간 누적 트래픽을 제어합니다. 시간단위에 따라 리필 속도가 결정됩니다.
| 시간단위 | 설명 | 리필 속도 예시 (120건 설정 시) |
|---|---|---|
| MIN | 분 | 초당 2건 (120÷60) |
| HOU | 시 | 초당 0.033건 (120÷3600) |
| DAY | 일 | 초당 0.00139건 (120÷86400) |
| MON | 월 | 초당 0.0000463건 (120÷2592000) |
두 조건을 함께 설정하면 이중 보호가 적용됩니다.