[JAVA] [Spring Boot Actuator] So registrieren Sie Ihren eigenen Integritätsprüfungsprozess manuell

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.

So registrieren Sie automatisch Ihren eigenen Gesundheitscheckprozess

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;
  }
}

So registrieren Sie Ihren eigenen Gesundheitscheckprozess manuell

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;
  }
}

Zusammenfassung

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.

Referenzseite

Recommended Posts

[Spring Boot Actuator] So registrieren Sie Ihren eigenen Integritätsprüfungsprozess manuell
So erstellen Sie mit Spring Boot einen eigenen Controller, der / error entspricht
[Forge] So registrieren Sie Ihre eigene Entität und Ihr Entity Render in 1.13.2
So stellen Sie Spring Boot + PostgreSQL ein
Verwendung von ModelMapper (Spring Boot)
[Einführung in Spring Boot] Überprüfung der Formularvalidierung
So teilen Sie eine Spring Boot-Nachrichtendatei
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So verkleinern Sie das Spring Boot Docker-Image
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Erstellen Sie Ihr eigenes Dienstprogramm mit Thymeleaf mit Spring Boot
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
So implementieren Sie den Authentifizierungsprozess durch Angabe von Benutzername und Kennwort in Spring Boot
So stellen Sie Spring Boot Dependency Injection (DI) ein
So schreiben Sie einen Komponententest für Spring Boot 2
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Booten nach Umgebung mit Spring Boot of Maven
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
Aufrufen und Verwenden der API in Java (Spring Boot)
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Versuchen Sie Spring Boot von 0 bis 100.
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
So überprüfen Sie die JSF-Version
Einführung in Spring Boot Teil 1
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
So stellen Sie sicher, dass CsrfRequestDataValueProcessor und der ursprüngliche RequestDataValueProcessor beim Spring Boot nebeneinander existieren
Spring Boot 2.0 Actuator, 3 Änderungen, die Sie wissen müssen, damit es funktioniert