Rate Limiting

Rate Limiting — механизм ограничения числа запросов, разрешённых в единицу времени, для защиты от abuse и обеспечения справедливого доступа.

Алгоритмы

Token bucket: bucket с токенами, запрос тратит токен, bucket пополняется с rate R. Разрешает burst. Leaky bucket: constant rate output, буферизирует burst. Fixed window: N запросов за минуту. Sliding window log: точный, дорогой. Sliding window counter: компромисс.

Уровни

Global: N req/sec на весь endpoint. Per-user: N req/min per user_id. Per-IP: против DDoS. Per-API-key: для B2B integrations. Per-endpoint: разные лимиты для /login (строже) и /balance (мягче). Иерархические (все одновременно).

Реализация

Nginx: limit_req. HAProxy: stick tables. Redis + Lua: атомарный INCR + EXPIRE. API Gateway: встроенное. Cloudflare Rate Limiting: на CDN-уровне до origin. Envoy Proxy: rate_limit filter с внешним сервисом.

iGaming-применение

Защита /login от brute force (5 попыток/мин per IP). /withdraw: 3 запроса/час per user против abuse. /register: 3/hour per IP против массового создания аккаунтов. /api/game/action: 10/sec per session против bot-play. Обязательный контроль, влияющий на security и compliance.