Spring Boot Actuator: реактивные показатели работоспособности (Reactive Health Indicators)

Для реактивных приложений, таких как использующие Spring WebFlux, ReactiveHealthContributor предоставляет неблокирующий контракт для получения работоспособности приложения. Подобно традиционному HealthContributor, информация о работоспособности собирается из содержимого ReactiveHealthContributorRegistry (по умолчанию все экземпляры HealthContributor и ReactiveHealthContributor, определенные в ApplicationContext). Обычные HealthContributors, которые не проверяют реактивный API, выполняются в эластичном планировщике.

В реактивном приложении ReactiveHealthContributorRegistry следует использовать для регистрации и отмены регистрации индикаторов состояния во время выполнения. Если вам нужно зарегистрировать обычного HealthContributor, вам следует обернуть его с помощью ReactiveHealthContributor#adapt.

Чтобы предоставить пользовательскую информацию о работоспособности из реактивного API, вы можете зарегистрировать компоненты Spring, которые реализуют интерфейс ReactiveHealthIndicator. В следующем коде показан пример реализации ReactiveHealthIndicator:

@Component
public class MyReactiveHealthIndicator implements ReactiveHealthIndicator {

    @Override
    public Mono<Health> health() {
        return doHealthCheck() //выполняем определенную проверку работоспособности, которая возвращает Mono<Health>
            .onErrorResume(ex -> Mono.just(new Health.Builder().down(ex).build()));
    }

}

Для автоматической обработки ошибки рассмотрите возможность расширения из AbstractReactiveHealthIndicator.

Автоконфигурируемые ReactiveHealthIndicators

Следующие ReactiveHealthIndicators автоматически конфигурируются Spring Boot при необходимости:

Название Описание
CassandraReactiveHealthIndicator
Проверяет, что база данных Cassandra работает.
CouchbaseReactiveHealthIndicator
Проверяет, что кластер Couchbase работает.
MongoReactiveHealthIndicator
Проверяет, что база данных Mongo работает.
RedisReactiveHealthIndicator
Проверяет, что сервер Redis работает.

При необходимости реактивные показатели заменяют штатные. Кроме того, любой HealthIndicator, который не обрабатывается явно, переносится автоматически.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки