Це залежить від того, чого ви намагаєтеся уникати.
Якщо ви намагаєтесь уникнути будь-якого переривання сервісу чогось, що є справді критичною послугою (я думаю, що з точки зору "люди помруть, якщо мій дзвінок API не буде належним чином обслужений"), вам потрібно просто сплатити бюджет на величезну неефективність, здебільшого надходять через забезпечення виділених ресурсів. І так, вони повинні бути присвячені, і нічого з цього не передбачає скорочення трафіку, багаторазове скорочення послуг не призвело б до відключення.
У набагато більш імовірному сценарії, коли ви знижуєте службу, було б незручно, ви можете вирішити проблему як з боку клієнта, так і з боку сервера. Хоча варто зазначити, що фактично вирішити проблему великого трафіку логічно неможливо, оскільки без обробки трафіку (який споживає ресурси) ви не можете знати, чи це повтор, якщо це повторне запит, який був успішним, але неправильно оброблений. клієнтом, якщо це DDOS тощо. Але ви можете пом'якшити вплив.
У клієнтському коді запишіть розумну логіку повторної спроби, яка має верхню межу та механізм витонченої відмови. Таким чином, ви не стикаєте своїх користувачів у нескінченному циклі відмовних запитів, а ви просто даєте їм помилку, кажучи їм спробувати все, що вони просто зробили за короткий час.
Для інфраструктури на вашому сервері найпростішим рішенням є дросель. Жорсткі обмеження щодо запитів, особливо якщо ви можете спробувати і поширити їх логічно, залежно від конкретного випадку використання (тобто. Якщо у вас централізована служба приймає важкі рішення, чи хочете ви почати блокувати географічно віддалені запити, які можуть спричинити зависання потоків Сторінка сервера? Або ви хочете рівномірно розподілити свій неминучий, але незначний збій? І т. д.) Це в основному зводиться до того, що навмисне повернення 503 з шлюзу - це пекло набагато дешевше, ніж пропускати запит і надсилати номер 504 все одно. В основному змушуйте клієнтів вести себе на основі того, що ви можете на даний момент надати, і надати правильні відповіді, щоб клієнти могли відповідним чином реагувати.