Frühling web-Anwendung healthchecks
Ich bin die Bereitstellung von Spring-basierten web-Anwendungen auf Amazon Beanstalk-Plattform, und Sie geben mir die option, für einen "Gesundheitscheck" URL-Pfad für meine Anwendung.
Die Idee ist, dass Ihre Plattform wird eine Anfrage an die URL, die nach der Bereitstellung, um zu sehen, ob die Anwendung erfolgreich gestartet werden. Also, wenn die Anforderung führt zu einem HTTP 200, wird die Anwendung wahrscheinlich gut. Aber wenn es Ergebnisse, die in einer HTTP 500 oder etwas anderes, die Plattform weiß, dass es ein problem mit der Anwendung.
So, ich wünschte, ich könnte entwickeln eine Art servlet, das wäre zu überprüfen, ob die Spring-Anwendung Kontext wurde erfolgreich initialisiert, oder nicht, eine entsprechende HTTP-response-code auf die Plattform.
Hat jemand versucht, so etwas wie das? Für ähnliche Zwecke?
Frage ich mich, wenn der Frühling bietet bereits einige elegante Lösung für dieses.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, mit Gesundheits-checks Funktionalität von Metriken. Sie können eine Reihe von Klassen, die sich
HealthCheck
Klasse und implementierencheck()
Methode. Dieser Gesundheits-check-Implementierungen wäre Spring managed beans sich selbst und konnte autowire Spring-beans und zu validieren. Dann konfigurierenHealthCheckServlet
zu überwachen, den Zustand der Anwendung. Überprüfen Sie auch Metriken-der Frühling Projekt. Es wird Frühling und Metriken integration einfacher.Wenn Sie Java Spring-Konfiguration müssen Sie möglicherweise eine Metrik config wie diese, erstreckt sich
MetricsConfigurerAdapter
von Metriken-FrühlingDann
@Import(value = {MetricsConfig.class})
zu Spring-config.Müssen Sie auch und Implementierung von
ServletContextListener
zu verdrahtenHealthCheckServlet
und Frühjahr. DieseHealthCheckContextListener
sollte Hinzugefügt werden, um Ihreweb.xml
ContextLoaderListener
sollten entweder definiert werden, inweb.xml
oder als Zuhörer in einer Klasse, dieWebApplicationInitializer
Frühjahr Schnittstelle, wenn Sie laufen in einem Servlet-3.0-Umgebung ohneweb.xml
Sollten Sie überlegen, was macht eine gesunde app für Sie (z.B. servlet tier? JMS-Warteschlangen? FTP-Server? etc.) und Ihre Gesundheit überprüfen überprüfen Sie diese Dienste-Verfügbarkeit. Offensichtlich ist der Gesundheits-check wird Häufig ausgeführt, so dass Sie nicht wollen, zu initiieren teure Operationen über und über wieder.
Spring Boot ist ein neues Projekt, dessen Ziel die Vereinfachung der Frühling Entwicklung, die durch die Begünstigung Konvention statt Konfiguration. Sie implementiert haben einen "Gesundheits-check" - Funktion, die Sie hinzufügen können, um ein Projekt über einen Aktuator add-in-Modul.
Hier ist ein Verweis auf Ihren Gesundheits-Check Umsetzung -- es verwendet eine controller-Klasse zurück zu kehren "ok", wenn eine Datenquelle vorhanden ist, wird versucht, eine Abfrage auszuführen, um zu bestätigen, dass die Datenbank erreichbar ist (sowas wie "SELECT .. from dual" in Oracle-syntax).
Die einfachste Sache, die Sie tun können, ist dies:
Erweiterbar, um auch testen, insbesondere Bohnen, DataSources usw.