Назад к вопросам
Senior
6
Расскажи как работает Circuit Breaker и его состояния
Компании, где спрашивали
прайм пейментс
Ответ от нейросети
sobes.tech AI
Circuit Breaker — это паттерн, используемый для повышения устойчивости распределённых систем. Он предотвращает постоянные попытки вызова неработающего сервиса, что помогает избежать излишней нагрузки и ускоряет восстановление.
Основные состояния Circuit Breaker:
- Closed (Закрытое) — все запросы проходят как обычно. Если количество ошибок превышает порог, переключается в Open.
- Open (Открытое) — все запросы сразу отклоняются без попытки вызова сервиса, чтобы дать время на восстановление.
- Half-Open (Полуоткрытое) — после таймаута Circuit Breaker пропускает ограниченное число запросов для проверки, восстановился ли сервис. Если запросы успешны — возвращается в Closed, иначе — снова в Open.
Пример на Java с использованием библиотеки Resilience4j:
CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("myCircuitBreaker");
Supplier<String> decoratedSupplier = CircuitBreaker
.decorateSupplier(circuitBreaker, () -> remoteService.call());
try {
String result = decoratedSupplier.get();
} catch (CallNotPermittedException ex) {
// Circuit Breaker в состоянии Open, вызов не разрешён
}