Пять минут падения S3 в AWS может парализовать тысячи приложений. Но чаще всего катастрофа начинается не с облачного провайдера, а с вашего кода. Один неотказоустойчивый вызов к внешнему API способен запустить цепную реакцию: исчерпание соединений БД, накопление задач в очередях, перегрузка памяти. Этого можно избежать, если внедрить механизм автоматической изоляции сбоев — Circuit Breaker.
Как работает Circuit Breaker: не просто «разомкнутая цепь»
Представьте автоматический выключатель, который физически разрывает цепь при перегрузке. В программировании Circuit Breaker — конечный автомат с тремя состояниями:
- Закрыто (Closed)
Запросы проходят нормально. Считаем ошибки: если превышен порог (например, 5 ошибкок за 30 секунд) — переходим в состояние «Разомкнуто».
- Разомкнуто (Open)
Все запросы мгновенно отклоняются без реального выполнения. Через таймаут (например, 30 секунд) переходим в «Полуразомкнуто».
- Полуразомкнуто (Half-Open)
...