Опис проєкту
ПерекладПо алгоритмам хочемо і варіант із кошиком токенів для згладжування коротких сплесків, і лічильник зі ковзаючим вікном для точного обліку в межах вікна, що вибираються на рівні політики. Лічильники мають зберігатися в Redis, щоб кілька вузлів API бачили однакову картину споживання без розходжень, а сама перевірка додавала лише мілісекунду-дві затримки. Крім простих лімітів потрібні повнофункціональні рівні квот із місячними або денними лімітами, облік споживання по кожному ключу і спосіб повертати викликаючій стороні залишок квоти. При перевищенні ліміту сервіс зобов'язаний відповідати статусом 429, видавати стандартні заголовки лімітів, включаючи limit, remaining і reset, і додавати підказку Retry-After, щоб коректні клієнти самі знижували навантаження.
У поставку входять невелика адмін-панель або формат конфігурації для опису тарифів і прив'язки ключів, сховище метрик для біллінгу та аналітики, а також зрозуміла документація. Розкажіть, як ви плануєте атомарні операції в Redis, як уникаєте гонок при високій конкурентності і як будете нагрузочно тестувати обмежувач до виведення в бій.
— Політики на ключ із алгоритмами кошика токенів і ковзаючого вікна
— Рівні квот із денними і місячними лімітами
— Спільні лічильники на Redis з мінімальною доданою затримкою
— Облік споживання та звіти для біллінгу
— Коректні відповіді 429 із заголовками limit, remaining, reset і Retry-After
— Адмін-конфіг тарифів і прив'язки ключів, документація та нагрузочні тести