Rate Limiter

System Design. Подготовка к сложному интервью - Глава 8 - Проектирование системы для сокращения URL адресов

System Design. Подготовка к сложному интервью - Глава 8 - Проектирование системы для сокращения URL адресов

Переводы: EN

Ранее описанные технологии, такие как согласованное хеширование, генератор ID позволяют разработать сокращатель URL, который способен генерировать 100 миллионов URL в день.

Проектирование включает в себя следующие элементы:

  • конечные точки API
  • перенаправление URL
  • сокращение URL
  • модель данных
  • хеш-функции: хеширование + разрешение коллизий VS преобразования в base-62
  • а также такие вопросы, как:
    • ограничитель частоты
    • масштабирование веб-сервера
    • масштабирование базы данных
    • аналитика
    • доступность, согласованность и надежность

Эти пункты раскрыты в очень интересной главе 8 книги:

System Design. Подготовка к сложному интервью - Глава 4 - Проектирование ограничителя трафика

System Design. Подготовка к сложному интервью - Глава 4 - Проектирование ограничителя трафика

Переводы: EN

Каждое популярное программное обеспечение должно иметь ограничитель трафика. Это предотвращает DDOS-атаку, снижает затраты и предотвращает перегрузку серверов.

Есть несколько каверзных вопросов, которые необходимо учитывать при внедрении ограничителя трафика:

  • Где поставить ограничитель трафика: на стороне клиента, на стороне сервера, на шлюзе?
  • Алгоритмы ограничения скорости. Есть много алгоритмов со своими плюсами и минусами: Token Bucket, Leaking Bucket, Fixed window counter, Sliding window log, Sliding window counter. Особенности вашего бизнеса определят правильный алгоритм.
  • Как создаются правила ограничения трафика?
  • Где хранятся правила?
  • Как обрабатывать запросы, скорость которых ограничена?

Эти вопросы раскрыты в очень интересной главе 4 книги: