Sobes.tech
Назад к вопросам
Senior
6

Расскажи как работает Circuit Breaker и его состояния

Компании, где спрашивали
прайм пейментс

Ответ от нейросети

sobes.tech AI

Circuit Breaker — это паттерн, используемый для повышения устойчивости распределённых систем. Он предотвращает постоянные попытки вызова неработающего сервиса, что помогает избежать излишней нагрузки и ускоряет восстановление.

Основные состояния Circuit Breaker:

  1. Closed (Закрытое) — все запросы проходят как обычно. Если количество ошибок превышает порог, переключается в Open.
  2. Open (Открытое) — все запросы сразу отклоняются без попытки вызова сервиса, чтобы дать время на восстановление.
  3. 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, вызов не разрешён
}