18 проектов от CLI-утилит до микросервисов. Автопроверка каждого требования. Персональное ревью кода от инженера.
250+ разработчиков · Бесплатный вводный проект · Без регистрации
Пройдено 13 из 26
Представьте: ваш API стал популярным. Один клиент решает скачать все книги за раз — 1000 запросов в секунду. Сервер захлёбывается, остальные пользователи видят ошибки.
Rate limiting — это защита: «не более N запросов за период времени». Как турникет в метро: пропускает по одному, не даёт толпе хлынуть разом.
Ключевая концепция: Fixed Window Counter
Существует несколько алгоритмов rate limiting (Token Bucket, Sliding Window, Leaky Bucket). Мы используем Fixed Window Counter — самый простой для понимания и реализации.
Делите время на окна фиксированной длины (например, 1 минута). Для каждого окна считаете количество запросов через INCR в Redis. Если счётчик превышает лимит — возвращаете 429 Too Many Requests.
Rate Limiting Algorithms — обзор алгоритмов
Redis INCR — атомарный инкремент
RateLimiter — содержит нужные поляAllow() — использует INCR + EXPIREВызов EXPIRE нужен при count == 1, чтобы ключ не остался в Redis навсегда. Без него окно rate limiting не сбрасывается.
Запушили код в GitHub — видите результат по каждому требованию этапа. Что пройдено, что нет, и почему. Не нужно гадать, правильно ли вы сделали.
RateLimiter — содержит нужные поляAllow() — INCR + EXPIREВызов EXPIRE нужен при count == 1, чтобы ключ не остался в Redis навсегда. Без него окно rate limiting не сбрасывается.
Полезные материалы
Rate Limiting Algorithms — обзор алгоритмов
Redis INCR — атомарный инкремент
После прохождения проекта можно отправить код на ревью. Инженер смотрит архитектуру, именование и стиль — как на настоящем ревью в команде.
Логика INCR + EXPIRE корректна, структуры чистые. Но посмотри на return:
ResetAt не заполняется в Result — клиент не узнает, когда лимит сбросится. Без этого не получится показать «попробуйте через 45 сек» — клиент будет ретраить вслепую.
Вводный проект · Без регистрации
Начать бесплатно“Платформа мне правда помогает, то что всё происходит на практике, оно прям ровным кирпичиком рядом в голове укладывается. Раньше читал теорию и казалось что понял, но по факту этого не было.
“Главный минус ГПТ, которого у менторов нет, я могу убедить или заставить сомневаться его в чём угодно. Из-за чего никогда не могу быть уверен в его ответах.
“На работе похожая история, переезд на микросервисы. Курс отлично помогает, лучше начал понимать что такое монолит и чистая архитектура.
“Никто никогда не говорил как правильно, никто не направлял. Обратная связь, самое важное. Ревью не для галочки, фидбэк полный.
“TCP-чат очень интересный проект был. Там такая кладезь знаний, что после него прям рост ощущается.
“Благодаря вам у меня гитхаб сильнее 90% кандидатов на стажировку.
От основ до продакшн-разработки за 4 курса
18 проектов в портфолио · Готовность к коммерческой разработке
Подписка на один курс · Цена зависит от курса
Первые 3 этапа каждого проекта — бесплатно
Для сравнения: OTUS — от 142 200 ₽ за курс · Яндекс Практикум — от 154 000 ₽ за курс
Остались вопросы? Напишите нам
Откройте вводный проект и попробуйте сами — бесплатно и без регистрации.