Защищаем сервер от перегрузок
Недавно при реализации прокси-сервиса столкнулся с интересными паттернами: Exponential Backoff и Circuit Breaker.
Exponential Backoff - увеличивает время ожидания следующих запросов при каждом неудачном запросе.
Circuit Breaker помогает остановить запросы на сервер, если сервер становится недоступен или возникает множество ошибок, позволяет системе восстанавливаться.
Теперь пример:
1. Делаем запрос на сервер.
2. Сервер возвращает ошибку.
3. Circuit Breaker проверяет статус сервера.
4. Если сервер доступен, следующий запрос будет отправлен через 1 секунду.
5. Если сервер снова возвращает ошибку, следующий запрос будет отправлен через 2 секунды.
6. Если сервер снова возвращает ошибку, следующий запрос будет отправлен через 4 секунды и так далее.
Подобную логику можно использовать частично и на фронтенде.
Недавно при реализации прокси-сервиса столкнулся с интересными паттернами: Exponential Backoff и Circuit Breaker.
Exponential Backoff - увеличивает время ожидания следующих запросов при каждом неудачном запросе.
Circuit Breaker помогает остановить запросы на сервер, если сервер становится недоступен или возникает множество ошибок, позволяет системе восстанавливаться.
Теперь пример:
1. Делаем запрос на сервер.
2. Сервер возвращает ошибку.
3. Circuit Breaker проверяет статус сервера.
4. Если сервер доступен, следующий запрос будет отправлен через 1 секунду.
5. Если сервер снова возвращает ошибку, следующий запрос будет отправлен через 2 секунды.
6. Если сервер снова возвращает ошибку, следующий запрос будет отправлен через 4 секунды и так далее.
Подобную логику можно использовать частично и на фронтенде.