Автоматический выключатель — это устройство, которое автоматически разрывает электрическую цепь при обнаружении опасной перегрузки или короткого замыкания, защищая таким образом оборудование и предотвращая пожары.
Контекст
ПРоблемный Коля:
У нас порой падает один микр и следом топит всех других, что делать?
Выручающая АНЯ:
Вам подходит, что вместо каскадного падения микров, только часть функционала перестанет работать, пока один микр не поднимется?
ПРоблемный Коля:
Да, это намного лучше, чем неработающее приложение
Выручающая АНЯ:
Тогда реализуйте паттерн circuit braker!
Проблема
Как остановить каскадное падение микросервисов из-за сбоя одного из сервисов или сети
Решение
Надо сделать механизм, который будет выключать автоматически попытки вызывать удаленный сервис, когда количество сбоев превысит пороговое значение
Circuit Breaker
Основные паттерны отказоустойчивости
Основные библиотеки реализующие паттерны отказоустройчивости
Преимущества Circuit Breaker
Сетевые и сервисные сбои локализуются, каскадные падения предотвращаются
Недостатки Circuit Breaker
Сложность настройки в конкретном случае, чтобы не было ложных срабатываний и при этом своевременно включался механизм защиты