Розробка продукту SaaS

Що таке обмеження швидкості запитів до API SaaS?

Автор: Олександра Бутенко, Копірайтер

Перевірено: Marta Dozorska, Віце-президент з продукту

Що таке обмеження частоти запитів API для SaaS?

Що таке обмеження швидкості запитів до API SaaS?

SaaS API хмарного застосунку обмежує кількість викликів API до сервісу протягом певного періоду для клієнтського пристрою, користувача, IP-адреси, ключа або орендаря. Клієнт налаштований надсилати певну кількість запитів. Цей тип обмеження API має наслідки для пропускної здатності інфраструктури сервісу, оскільки він також сприяє обмеженню доступу користувачів та допомагає в управлінні витратами на хмарні послуги.

У механізмах обмеження частоти запитів моніторинг повідомлень ‘429 Too Many Requests’ є поширеною практикою, що виникає, коли сервери передають їх клієнтам після досягнення порогу запитів. У багатьох випадках сервери використовують заголовок “Retry-After”, щоб повідомити клієнтам, яка затримка рекомендується між повторними спробами запитів.

Як працює обмеження частоти запитів API?

Алгоритм Поведінка
Фіксоване вікно Простий, але може створювати сплески активності на межах вікна
Ковзне вікно Справедливіше, ціною більшої координації та пам'яті
Токен-бакeт Дозволяє контрольовані сплески, забезпечуючи середню швидкість
Діряве відро Регулює вихідні дані для забезпечення постійної швидкості

Чим відрізняються обмеження швидкості API та дроселювання?

Метод для
Дроселювання Згладжування сплесків
Обмеження частоти запитів Забезпечення справедливості та захист спільних ресурсів

 

Чому обмеження швидкості запитів до API є важливим для провайдерів SaaS?

Ось що саме робить обмеження швидкості:

  • Це пов'язано з вирішенням потенційних операційних проблем системи, що можуть виникнути через великий обсяг запитів з непередбаченого джерела.
  • Це запобігає таким діям, як веб-скрейпінг або хакерські атаки методом перебору.
  • Це враховує витрати, що виникають внаслідок автомасштабування або використання ресурсів нижчими системами.

Які існують найкращі практики на стороні клієнта для роботи з обмеженнями швидкості запитів API?

  1. Дотримуйтесь інструкцій, наданих у заголовках Retry-After.
  2. Спробуйте експоненційну витримку з випадковим компонентом.
  3. “Поставте в чергу” запити або розподіліть навантаження при високому паралелізмі.
  4. Ви можете реалізувати механізм маркерного кошика для керування трафіком і чергами на стороні клієнта для робочих навантажень, що вимагають паралелізму.
Майте на увазі:

Механізм повторних спроб пов'язаний з ефектами "зграї, що біжить" та надійністю під навантаженням.

Типове рішення включає різні рівні: API-шлюз, граничну платформу безпеки та систему керування послугами або квот. Можуть бути застосовані такі патерни:

Примітка:

Багаторівневий підхід часто є найкращим для SaaS, граничного захисту, тротлінгу шлюзу та бізнес-правил на рівні застосунку.

 

Як постачальники SaaS можуть ефективно повідомляти користувачів про затримки через обмеження швидкості запитів?

У випадках, коли обмеження частоти запитів призводить до збільшення кількості звернень клієнтів до персоналу підтримки, доцільно пояснити підстави для таких обмежень. Постачальникам слід рекомендувати:
· Використовувати різні коди стану HTTP.
· Показувати заголовки Retry-After та rate-limit.
· Ліміти, зазначені в документах, мають бути доведені до відома розробників.
· Де це можливо, відображати статистику використання клієнта або його залишок квоти.

 

Майте на увазі:

Користувацький досвід передбачає зрозумілі для людини повідомлення про помилки, машинозчитувані метадані та опцію самообслуговування для запитів на збільшення квоти.

Які існують обмеження лімітування запитів API та які додаткові стратегії існують?

Обмеження швидкості запитів керує зловживаннями, витратами та справедливістю, але його ефективність у вирішенні проблем у розподілених системах може мати межі. Інтеграція обмеження швидкості запитів з іншими засобами контролю потребує розгляду:

  • Квоти
  • WAF або захист від ботів
  • Аутентифікація та ідемпотентність
  • Моніторинг

 

Висновок

Обмеження швидкості запитів для SaaS API є життєво важливим заходом, що використовується для захисту Хмарна інфраструктура, підтримувати безперебійну роботу та доступність сервісу, а також моніторити операції. Цей метод використовує різні алгоритми з дроселюванням і покладається на комунікацію з клієнтами та належне коригування лімітів.

Готові розпочати?

Ми були на вашому місці. Поділимося нашим понад 20-річним досвідом та втілимо ваші глобальні мрії в реальність.
Мозаїчне зображення
ukУкраїнська