Spring Boot Actuator est un point de terminaison (/ actuator / health
) qui fournit l'état de fonctionnement (résultats du contrôle de santé) de l'instance elle-même et des ressources externes (disque, base de données, service de messagerie, service de cache, etc.) qui dépendent de l'instance. , / Actuator / health / {name}
), qui peut également fournir son propre état de vérification de l'état.
Il est introduit dans la référence Spring Boot avec un exemple de code, mais si vous enregistrez une classe qui implémente l'interface HealthIndicator
dans le conteneur DI, Spring Boot Actuator la détectera automatiquement.
@Component //Inscription auprès du conteneur DI par analyse des composants
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return checkWeatherAvailable() ? Health.up().build(): Health.down().build();
}
private boolean checkWeatherAvailable() {
boolean result = false;
//Processus de surveillance de la vie et de la mort
// ...
return result;
}
}
Spring Boot Actuator gère les objets qui effectuent le traitement de vérification de l'état dans HealthIndicatorRegistry
, et vous pouvez également enregistrer manuellement votre propre traitement de vérification de l'état via HealthIndicatorRegistry
obtenu à partir du conteneur DI.
Par exemple, si vous souhaitez modifier (augmenter ou diminuer) la cible du traitement de la vérification de l'état en fonction de la valeur définie, vous pouvez utiliser le mécanisme d'enregistrement manuel.
@Configuration
public class MyConfiguration {
// ...
@Autowired
void addExternalServiceHealthIndicators(HealthIndicatorRegistry registry, MyProperties properties) {
properties.getExternalServices().stream().filter(s -> StringUtils.hasText(s.getHealthCheckUrl()))
.forEach(s -> registry.register(s.getName(), new UrlBasedHealthIndicator(s.getHealthCheckUrl())));
}
}
public class UrlBasedHealthIndicator implements HealthIndicator {
private final String url;
public UrlBasedHealthIndicator(String url) {
this.url = url;
}
@Override
public Health health() {
return checkWeatherAvailable() ? Health.up().build(): Health.down().build();
}
private boolean checkWeatherAvailable() {
boolean result = false;
//Processus de surveillance de la vie et de la mort
// ...
return result;
}
}
Je n'utilise pas Spring Boot comme application commerciale dans le projet dans lequel je suis actuellement impliqué, mais j'utilise un simulateur système externe (principalement utilisé pour les tests ... un simulateur utilisé pour la gestion interne même dans un environnement commercial). Je l'ai créé en, et je voulais créer un mécanisme qui peut augmenter ou diminuer l'état de fonctionnement des ressources manipulées dans le simulateur en fonction de la valeur définie, j'ai donc étudié la méthode de réalisation.
Recommended Posts