
Një udhëzues teknik shpjegon ndërtimin nga e para të një kufizuesi të kërkesave API me TypeScript, Node.js dhe Redis, duke përdorur algoritmin Token Bucket. Qëllimi është mbrojtja e shërbimeve nga kërkesat e pakufizuara: skriptet abuzive, botët që mbledhin të dhëna dhe sulmet DDoS mund të shterojnë lidhjet me bazën e të dhënave dhe të shkaktojnë ndërprerje.
Në instalime me disa instanca, për shembull pas një balancuesi ngarkese në AWS ose Kubernetes, numëruesit në memorien e një procesi Node.js nuk mjaftojnë. Kërkesat shpërndahen mes instancave, duke i lejuar klientit të anashkalojë kufirin. Redis shërben si depo e përbashkët në memorie, të cilën e konsultojnë të gjithë serverët e aplikacionit.
Algoritmi Token Bucket përdor një rezervë me kapacitet maksimal njësish, të quajtura tokenë. Çdo kërkesë konsumon një token; kur rezerva zbrazet, kërkesa refuzohet me HTTP 429 Too Many Requests. Tokenët plotësohen me ritëm të qëndrueshëm deri në kapacitetin e përcaktuar, duke lejuar flukse të shkurtra kërkesash brenda kufirit.
Materiali përfshin konfigurimin e projektit dhe lidhjen me Redis përmes ioredis. Ai evidenton edhe një problem konkurrueshmërie: kur leximi dhe përditësimi bëhen veçmas me GET dhe SET, dy kërkesa mund të lexojnë të njëjtin token të fundit dhe të pranohen të dyja. Teksti prezanton skriptimin Lua në këtë kontekst, por ndërpritet para zbatimit të zgjidhjes.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

