Перейти к содержимому

Проектирование ограничителя частоты запросов (LLD) — алгоритмы Token Bucket, Fixed и Sliding Wind...

Coding Decoded

0:00 / 0:00

Проектирование ограничителя частоты запросов (LLD) — алгоритмы Token Bucket, Fixed и Sliding Wind...

6 284 просмотра · 10 месяцев назад
Coding Decoded
33,3 тыс. подписчиков
6 284 просмотра · 10 месяцев назад
Добро пожаловать на очередной подробный семинар от Санчита Дудеджи из Coding Decoded! В этом видео мы осваиваем одну из важнейших концепций проектирования бэкенд-систем — ограничение скорости. Независимо от того, являетесь ли вы бэкенд-инженером, энтузиастом системного проектирования или готовитесь к собеседованиям с ведущими техническими специалистами, этот комплексный семинар поможет вам с самого начала понять, спроектировать и реализовать ограничение скорости в Spring Boot. Мы рассмотрим, почему ограничение скорости так важно, разберём реальные примеры использования (например, банковские системы и Zomato), а затем перейдём к практической реализации с использованием библиотеки Bucket4j. Вы также изучите аспекты проектирования высокого уровня (HLD) и проектирования низкого уровня (LLD), после чего последует демонстрация кода в реальном времени и пробный прогон алгоритма, чтобы увидеть, как механизм Token Bucket работает на самом деле. 💡 К концу этого видео вы получите полную ясность в следующих вопросах: Когда и где применять ограничение скорости в ваших микросервисах; Как защитить API от атак и перегрузок; Как эффективно реализовать ограничение с помощью Bucket4j; Как базовый алгоритм (Token Bucket) обеспечивает справедливое и стабильное использование API. Главы: 00:00 - Введение и почему ограничение скорости важно; 02:00 - Что такое ограничение скорости? (Определение + примеры из реальной жизни) 04:00 — Пример банкомата: предотвращение атак методом подбора 06:00 — Пример из реальной жизни: защита Zomato от атак ботов 08:00 — Важность регулирования скорости и защиты сервера 10:00 — Настройка демонстрационного проекта Spring Boot (API для забытого пароля) 12:00 — Реализация ограничения скорости с помощью библиотеки Bucket4j 14:00 — Настройка конфигурации и бина (RateLimiterConfig) 16:00 — Описание реализации контроллера и сервиса 18:00 — Пошаговый разбор алгоритма (расход контейнера токенов) 20:00 — Тестовый прогон алгоритма с выполнением в реальном времени 22:00 — Понимание поведения токенов и логики отклонения запросов 25:00 — Краткое изложение и основные выводы (когда и как применять ограничение скорости) Ссылка на код на Github: https://github.com/Sunchit/ratelimiter 🧩 Рассматриваемые технологии и концепции: Spring Boot | Микросервисы | Java | Bucket4j | Интеграция с Redis | Регулирование API | Алгоритмы ограничения скорости | Token Bucket | Проектирование систем | HLD + LLD | Масштабируемое проектирование бэкенда 👨‍💻 О докладчике: Санчит Дудея — старший бэкенд-инженер с более чем десятилетним опытом создания масштабируемых распределённых систем. В рамках Coding Decoded он упрощает сложные темы бэкенда и проектирования систем, помогая инженерам успешно проходить собеседования и создавать готовые к эксплуатации системы. 🔥 Не забудьте поставить лайк, поделиться и подписаться, чтобы быть в курсе новых подробных сессий, посвящённых продвинутым концепциям бэкенда, реальной архитектуре и практическим демонстрациям проектов! #SpringBoot #RateLimiting #SystemDesign #CodingDecoded #Java #Microservices #Bucket4j #BackendEngineering #Throttling Подпишитесь на этот канал, чтобы получить доступ к бонусам:    / @codewithsunchitdudeja