Die Hauptfunktion von Spring Boot ist Autoconfig (automatische Konfiguration), und für US -Benutzer sind es nur verschiedene Starter.
Spring Boot-Actuator bietet auch einen Starter, der automatisch für uns konfiguriert ist. In Bezug auf die Verwendung müssen wir unseren Abhängigkeiten nur einen Starter hinzufügen und dann das Projekt starten.
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Actuator </artifactid> </abhängig>
Häufig verwendeter Endpunkt
Spring Boot-Actuator bietet viele nützliche Endpunkte und eine verschiedene Überwachung von Feder-Boot-Anwendungen. Sprechen wir über meine häufig verwendeten Endpunkte:
/Gesundheitszustand Gesundheitszustand
/configProps reichen die Konfigurationsinformationen der Anwendung ab, da Spring Start bei der Veröffentlichung möglicherweise ein separates JAR -Paket ist und die Konfigurationsdatei möglicherweise enthalten ist. Wenn wir die Konfigurationsdatei überprüfen müssen, können wir ConfigPropSendpoint verwenden, um festzustellen, ob einige Konfigurationen korrekt sind.
/verfolgen Sie die neuesten HTTP -Anfrageinformationen
Healthendpoint
Wenn wir http: // localhost: 8088/Health besuchen, können wir feststellen, dass HealthendPoint uns Standardüberwachungsergebnisse liefert, einschließlich der Festplattenerkennung und der Datenbankerkennung.
{ "status": "UP", "diskSpace": { "status": "UP", "total": 398458875904, "free": 315106918400, "threshold": 10485760 }, "db": { "status": "UP", "database": "MySQL", "hello": 1 }} In der Tat werden Sie feststellen, dass die von Healthendpoint bereitgestellten Informationen nicht darauf beschränkt sind. Unter dem org.springframework.boot.actuate.Health -Paket finden Sie Elasticsearchhealthindicator, Redishalthindicator, Rabbithealthindicator usw.
Das heißt, Healthendpoint bietet auch Gesundheitsinformationen für Komponenten wie ES, Redis.
Benutzerdefinierte Indikatorin erweitern Healthendpoint
Wenn Sie den Quellcode betrachten, werden die Gesundheitsinformationen von Disk und Datenbank vom DiskspaceHealthIndicator und DataSourcehealthIndicator implementiert. Wenn wir einige unserer individuellen Komponenten überwachen, können wir auch einen Indikator implementieren:
@ComponentPublic Class User implementiert HealthIndicator {/** * Benutzerüberwachung Zugriff: http: // localhost: 8088/health * * @return benutzerdefinierte Gesundheit Monitor */@Override Public Health () {return New Health.builder (). Withetail ("UserCount, 10) // Custom -Überwachung von Inhalten. "Up"). Up (). Build (); }}Zu diesem Zeitpunkt besuchen wir erneut: http: // localhost: 8088/Gesundheit Das zu diesem Zeitpunkt zurückgegebene Ergebnis ist wie folgt, einschließlich unserer angepassten Benutzergesundheitsinformationen.
{"Status": "Up", "Benutzer": {"Status": "Up", "UserCount": 10, "Userstatus": "Up"}, "Diskspace": {"Status": "Up", "Total": 398458875904, "Free": 3150989898912. "Status": "Up", "Datenbank": "MySQL", "Hallo": 1}}Benutzerdefinierte Endpunkt
Tatsächlich können wir neben der Erweiterung des HealthendPoint zum Hinzufügen einiger Gesundheitsüberprüfungen auch einige Endpunkte anpassen, um während der Programmlaufzeit einige Informationen anzugeben:
@ConfigurationPublic Class EndpointAutoConfig {@Bean public Endpoint <map <String, Objekt >> Customendpoint () {return New SystemendPoint (); }}@ConfigurationProperties (Präfix = "Endpoints.customsystem") public class Systemendpoint erweitert AbstractendPoint <map <String, Objekt >> {public Systemendpoint () {Super ("CustomSystem"); } @Override public map <String, Object> invoke () {map <String, Objekt> result = new HashMap <> (); Karte <String, String> map = system.getenv (); result.put ("username", map.get ("username"); result.put ("computerername", map.get ("computerername")); result.put ("userDomain", map.get ("userDomain")); Rückgabeergebnis; }}Besuchen Sie http: // localhost: 8088/CustomSystem, um unseren individuellen Endpunkt anzuzeigen, und das Ergebnis lautet wie folgt:
{"Benutzername": "xxx", "UserDomain": "Desktop-6EAN1H4", "Computername": "Desktop-6ean1h4"}Nachdem wir zu unserer Spring -Boot -Anwendung einen Aktuator hinzugefügt haben, sollte die erwartete Gesundheitsschnittstelle das Ergebnis wie folgt aussehen:
{Status: "Up", Diskspace: {Status: "Up", Gesamt: 250182889472, kostenlos: 31169568768, Schwelle: 10485760}, DB: {Status: "UP", Datenbank: "H2", Hallo: 1}}}Wenn es nur der Status zurückgegeben wird
{Status: "Up"}Sie müssen eine neue Konfiguration für die Anwendung hinzufügen. Wenn Sie die YML -Konfigurationsdatei als Beispiel übernehmen, müssen Sie die folgende Konfiguration hinzufügen:
Management: Sicherheit: aktiviert: falseendpoints: Gesundheit: sensibel: false
Management.endpoint.Health.show-details = immer
Zusammenfassen
Die oben genannte Überprüfung und Überwachung des Springboot Implementierungsprojekts, die vom Editor eingeführt wurde. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!