Token Bucket 알고리즘

Token Bucket 알고리즘 A workflow diagram generated by Archify. 01 / Token Bucket · 토큰 공급 02 / 요청 처리 경로 EX / 제한 초과 Refill · 10 tokens/sec · Token Bucket · 토큰 공급 Refill 10 tokens/sec Token Bucket · 최대 100 tokens · Token Bucket · 토큰 공급 Token Bucket 최대 100 tokens 요청 도착 · Envoy 프록시 수신 · 요청 처리 경로 요청 도착 Envoy 프록시 수신 토큰 있음? · 잔여 토큰 확인 · 요청 처리 경로 토큰 있음? 잔여 토큰 확인 요청 허용 · 토큰 1개 소비 · 요청 처리 경로 요청 허용 토큰 1개 소비 요청 거부 · 429 반환 · 제한 초과 요청 거부 429 반환 토큰 감소 Yes No 매초 10개 추가 Legend 요청 유입 토큰 처리 거부 버킷 상태

EnvoyFilter token_bucket 설정

  • • max_tokens: 100 — 버킷에 담을 수 있는 최대 토큰 수
  • • tokens_per_fill: 10 / fill_interval: 1s — 초당 10개 보충
  • • 토큰이 없으면 Envoy가 429를 반환

로컬 Rate Limiting의 특징

  • • 각 Envoy 프록시가 독립적으로 버킷을 관리
  • • 파드당 100 req/s → 파드 3개면 최대 300 req/s 허용
  • • 빠르고 단순하지만 전체 정확도는 낮음