Der Spring Boot Actuator ist ein Endpunkt (/ actuator / health
), der den Betriebsstatus (Integritätsprüfungsergebnisse) der Instanz selbst und der von der Instanz abhängigen externen Ressourcen (Festplatte, Datenbank, Messaging-Dienst, Cache-Dienst usw.) bereitstellt. , / Actuator / health / {name}
), der auch einen eigenen Health-Check-Status bereitstellen kann.
Es wird in der Spring Boot-Referenz mit Beispielcode eingeführt. Wenn Sie jedoch eine Klasse registrieren, die die "HealthIndicator" -Schnittstelle im DI-Container implementiert, erkennt der Spring Boot Actuator sie automatisch.
@Component //Registrieren Sie sich beim DI-Container per Komponentenscan
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return checkWeatherAvailable() ? Health.up().build(): Health.down().build();
}
private boolean checkWeatherAvailable() {
boolean result = false;
//Prozess zur Überwachung von Leben und Tod
// ...
return result;
}
}
Spring Boot Actuator verwaltet die Objekte, die die Integritätsprüfungsverarbeitung in "HealthIndicatorRegistry" ausführen, und Sie können Ihre eigene Integritätsprüfungsverarbeitung auch manuell über "HealthIndicatorRegistry" registrieren, das aus dem DI-Container abgerufen wird. Wenn Sie beispielsweise das Ziel der Verarbeitung von Integritätsprüfungen gemäß dem festgelegten Wert ändern (erhöhen oder verringern) möchten, können Sie den manuellen Registrierungsmechanismus verwenden.
@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;
//Prozess zur Überwachung von Leben und Tod
// ...
return result;
}
}
Ich verwende Spring Boot nicht als kommerzielle Anwendung in dem Projekt, an dem ich derzeit beteiligt bin, sondern verwende einen externen Systemsimulator (hauptsächlich zum Testen ... eines Simulators, der auch in einer kommerziellen Umgebung für die interne Verwaltung verwendet wird). Ich habe es in erstellt und wollte einen Mechanismus erstellen, der den Betriebsstatus der im Simulator behandelten Ressourcen abhängig vom eingestellten Wert erhöhen oder verringern kann. Deshalb habe ich die Realisierungsmethode untersucht.
Recommended Posts