Mikä on Nopeusrajoitus
API-pyyntötiheyden rajoittaminen
Nopeusrajoitus on mekanismi API:n tai palvelun pyyntömäärien rajoittamiseksi tietyn ajanjakson sisällä.
Miksi nopeusrajoitus on tärkeä
- Palvelimien suojaaminen ylikuormitukselta
- DDoS-hyökkäysten estäminen
- Resurssien oikeudenmukainen jakelu
- Infrastruktuurikustannusten hallinta
- Vakaan palvelun varmistaminen kaikille käyttäjille
Rajoitustyypit
- Pyyntöjä sekunnissa (RPS) — klassinen rajoitus
- Pyyntöjä minuutissa/tunnissa — pitkäaikainen hallinta
- Käyttäjäkohtaisesti — yksilölliset rajoitukset
- IP-osoitteen mukaan — bottisuojaus
- Hinnoittelusuunnitelman mukaan — API:n monetisointi
Toteutusalgoritmit
- Token Bucket — tokenit ämpärissä
- Leaky Bucket — vuotava ämpäri -algoritmi
- Fixed Window — kiinteät aikaikkunat
- Sliding Window — liukuva ikkuna -lähestymistapa
HTTP-otsikot
- X-RateLimit-Limit — maksimipyynnöt
- X-RateLimit-Remaining — jäljellä olevat pyynnöt
- X-RateLimit-Reset — rajoituksen nollausaika
- Retry-After — milloin yrittää uudelleen