Розбір рішень · Senior · Запитання 13 з 14

Публічний API працює на 40 екземплярах, а кожен ключ може робити 100 запитів за хвилину. Малі сплески прийнятні, але ліміт має діяти між екземплярами. Де тримати лічильники?

Показати відповідь

Правильна відповідь: У спільному Redis, із token bucket

Пояснення

Спільне сховище в пам'яті бачить усі екземпляри й дешево витримує таку частоту оновлень, а token bucket дозволяє короткі сплески. Лічильники на екземплярі підходять для грубого захисту від флуду, але ключ міг би досягти 40-кратного ліміту. Рядок бази підходить для малих квот, як місячний білінг, а оновлення на кожен запит робить із нього гаряче вузьке місце.

Де почитати

Помилка в запитанні

Розбір рішень · Senior · запитання 13

Перевірте себе

Пройдіть тест Розбір рішень · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест