Проверка состояния прерывателей цепи Spring Cloud

#spring-boot #spring-cloud #circuit-breaker #resilience4j #spring-cloud-circuitbreaker

#загрузка Spring-boot #spring-cloud #автоматический выключатель #отказоустойчивость 4j #spring-cloud-прерыватель цепи

Вопрос:

Мы используем Spring cloud circuitbreaker для обработки сбоев при вызовах внешней службы. У нас также есть запланированное задание, которое вызывает эту службу. Я хотел бы запретить выполнение задания, если прерыватель цепи открыт, но я не вижу никакого способа проверить это, поскольку ни прерыватель цепи (Resilience4JCircuitBeaker), ни методы CircuitBreakerFactory expose, которые позволяют это проверять. Есть ли другой способ добиться этого?

Ответ №1:

В качестве альтернативы вы можете использовать наш стартер Resilience4j Spring Boot 2 и внедрить CircuitBreakerRegistry в свой класс, чтобы проверить состояние экземпляра прерывателя цепи. Наш стартер имеет множество других преимуществ, таких как внешняя конфигурация, поддержка аннотаций, метрики, …

В принципе, вы можете копировать фрагменты кода нашего CircuitBreakersHealthIndicator класса.

Комментарии:

1. Большое спасибо @robert-winkler, это сработало отлично. Я пока оставлю вопрос без ответа на случай, если кто-нибудь знает, как это сделать с помощью Spring Cloud circuitbreaker.