Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Der Spring Cloud Netflix Stack Grundkurs

Das Lastverhalten eines Services überwachen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wunderbar, Ihr Gästebuch läuft und ist beliebt! Leider stellen Sie fest, dass aufgrund des hohen Zuspruchs Ihre Anwendung immer langsamer wird. Die Lösung hält dieses Video für Sie bereit: Lassen Sie sich erklären, wie Sie mit dem Hystrix Stream und dem Hystrix Dashboard zwei unverzichtbare Hilfsmittel für das Management von Spring-Cloud-Applikationen nutzen können.

Transkript

Herzlichen Glückwunsch. Ihre Applikation läuft. Ihre Applikation läuft sogar besser, als Sie sich das jemals erwartet haben. Und jetzt toben hunderte oder tausende Nutzer über Ihr Gästebuch. Das ist auf der einen Seite wundervoll. Auf der anderen Seite ein riesiges Problem, denn Ihr Gästebuch wird möglicherweise langsam. Und Sie wissen gar nicht, woran das liegt. Das Ganze herauszufinden kann ein riesiges Problem sein. Es kann aber auch sehr sehr einfach sein, wenn Sie von Anfang an die richtigen Weichen stellen. Und genau das werden wir uns in diesem Video einmal anschauen. Wie wir die Weichen richtig stellen können, so dass Sie Informationen über das Kommunikationsverhalten Ihrer Applikation abgreifen können und Schwachstellen identifizieren können. Wir werden uns in diesem Video mit dem Hystrix-Stream auseinandersetzen und Turbine nutzen, um die Informationen aller Hystrix-Streams gemeinsam zu visualisieren. Wir werden dies mithilfe des Hystrix-Streams und des Hystrix-Dashboards umsetzen. Im ersten Schritt werden wir die Backend-Applikation einmal insofern erweitern, als dass sie diesen Hystrix-Stream produziert. Wir öffnen zu diesem Zweck die Konfigurationsdatei "pom.xml" und wechseln hier in den Reiter "Dependencies". Hier fügen wir eine weitere Abhängigkeit hinzu. Die Group-ID ist "org.springframework.boot". Und die Artifact-ID ist "spring-boot-starter-actuator". Da diese Applikation hier selber eine Spring-Boot-Applikation ist, müssen wir keine Version angeben. Ansonsten müssen Sie die aktuelle Version von "Spring-Boot" im Versionsfeld mit angeben. Ein Klick auf "Speichern" übernimmt die Änderung. Und das war es schon. Wir müssen nun lediglich bei der Applikation einen Neustart durchführen. Natürlich kann das Ganze auch nur funktionieren, wenn die Applikation schon über die Hystrix-Abhängigkeit verfügt und mindestens ein Hystrix-Command auch definiert ist. Wir starten nun also die Backend-Applikation einmal neu. Nach ein paar Sekunden ist es erledigt. Und wir wenden uns an den Discovery-Service, um herauszufinden, auf welchen Port die Applikation lauscht. Der Discovery-Service, also Eureka, lauscht bei mir auf die Adresse "http://localhost:8761". Wenn ich jetzt auf den Link hier beim Backend-Service klicke, dann öffnet sich in einem neuen Fenster der Verweis auf diese Applikation. Und hier gibt es einen neuen Endpunkt, der, wenn Sie "spring-boot-actuator" nicht installiert haben, normalerweise nur eine Fehlermeldung gibt. Das ist der Info-Endpoint. Hier könnten Sie jetzt sagen, wie Ihre Applikation heißt. Uns interessiert aber ein anderer Endpoint, der jetzt auch automatisch dabei ist. Und dieser Endpoint heißt "hystrix.stream". Und wenn Sie hier diesen Endpunkt aufrufen und ein paar Sekunden warten, dann werden Sie sehen, dass hier ohne Pause ohne Unterlass Daten reingepumpt werden. Wir können das triggern, indem wir das Gästebuch direkt einmal aufrufen und hier einen neuen Eintrag hinzufügen und diesen Eintrag speichern, weil spätestens jetzt nämlich eine Kommunikation stattgefunden hat mit einem anderen Service, mit dem Mail-Service, über Hystrix. Und wir sehen hier nun, dass eine ganze Menge an Daten hier fortlaufend geschrieben werden. Damit ist dieser Hystrix-Stream also abgreifbar, wir können damit arbeiten. Nur, es ist ziemlich unsexy, diesen Stream, so wie er ist, zu nehmen und so anzuschauen. Aus diesem Grund gibt es das sogenannte Hystrix-Dashboard. Das Hystrix-Dashboard werden wir nun einmal unserer Applikation hinzufügen, um nämlich eine wesentlich augenfreundlichere Oberfläche zu erhalten. Wir werden das Ganze über Eclipse vornehmen, denn auch das Hystrix-Dashboard ist eine eigenständige Micro-Service-Applikation. Hier im Eclipse fügen wir ein neues Projekt hinzu, per Rechtsklick New Project, und wählen hier "Spring Starter Project". Wir geben diesem Projekt einen entsprechenden Namen, eine entsprechende Artifact-ID und eine entsprechende Beschreibung, klicken auf "Next" und suchen nach Hystrix beziehungsweise dem Hystrix-Dashboard. Ein Klick auf "Finish" legt das Projekt an. Nach ein paar Sekunden ist der Download aller benötigten Komponenten abgeschlossen. Und wir können uns an die Konfiguration, beziehungsweise an die Implementierung des Dashboards machen. Die Implementierung als solches ist sehr sehr einfach gehalten. Wir müssen lediglich in der Bootstrapping-Klasse eine Annotation hinzufügen, nämlich "EnableHystrixDashboard". Sobald diese Annotation hinzugefügt worden ist, können wir die Applikation direkt starten. Wir müssen sie nicht mit Eureka in Beziehung setzen oder andere Dinge tun, sondern wir können sie einfach ans Laufen bringen. Vielleicht sollten wir noch einen Port festlegen. Das machen wir über "server.port". Und der Port, den wir festlegen, ist 12000. Und nun können wir die Applikation per Rechtsklick Run As Spring Boot App einmal starten. Nach ein paar Sekunden ist sie am Laufen und wir können das Dashboard aufrufen. Der Aufruf erfolgt über die Adresse "http://localhost:12000/hystrix.dashboard" Und hier müssen wir nun den Pfad zu einem Hystrix-Stream eingeben. Und diesen Hystrix-Stream finden wir über Eureka heraus, wenn wir ihn uns nicht gemerkt haben. Und das ist der Pfad der bereits laufenden Backend-Applikation samt der Erweiterung "hystrix.stream". Wenn wir jetzt auf Monitor Stream klicken, dann sehen wir, dass hier diverse Daten angezeigt werden. Und wenn wir nun einmal im Gästebuch einen Eintrag anlegen, dann können wir hier sehen, dass eine Verarbeitung stattgefunden hat, dass ein Eintrag, oder ein Call, durchging. Das Ganze war erfolgreich, es ist grün. Wenn wir nun hier mehrere Verarbeitungen vornehmen würden, wenn wir also beispielsweise über sowas wie JMeter ein dauerndes Anpingen des Backend-Services vornehmen, der dann seinerseits die Nachricht an den Mail-Service versendet, dann werden wir sehen, dass sich das hier entsprechend in Echtzeit abträgt. Positives ebenfalls, das wir erkennen können, dass der Circuit "geclosed" ist. Das bedeutet, dass der Aufruf des Mail-Services im Backend funktioniert. Hätten wir ein Problem, dann wäre irgendwann der Circuit "open", das Ganze wäre rot und dieser Service würde nicht mehr angesprochen werden. Das Ganze, wie man sieht, ist in Echtzeit. Das heißt, wenn ich jetzt noch einen Eintrag hinzufüge, dann bildet sich das hier nach einer sehr kurzen Zeit ebenfalls ab. Und Sie sehen auch, dass diese kleinen runden Kreise dann größer werden. Die werden nach einer Weile auch wieder kleiner. Wenn diese Kreise immer größer werden, dann ist es ein Zeichen für Sie auf visueller Ebene, dass die Verarbeitung länger dauert, dass es sich eine Art Queue bildet. Das Ganze ist bis zu einem bestimmten Zeitraum auch voll und ganz in Ordnung. Nur irgendwann sollten diese Kreise nicht immer größer werden, sondern auf einem bestimmten Level bleiben, oder idealerweise kleiner werden. Wir können also mithilfe des Hystrix-Dashboards einzelne Hystrix-Streams wunderbar überwachen. Nur, was ist, wenn wir jetzt noch eine zweite, eine dritte, eine vierte Instanz des Backend-Services starten, oder andere Services haben, die ebenfalls Hystrix-Streams produzieren? Dann wird das Ganze furchtbar unübersichtlich, weil wir dann hier 10, 15, 20 Monitor-Applikationen offen haben müssen und das wäre letztlich nicht mehr managebar. Aus diesem Grund gibt es Turbine. Turbine ist ein Framework, mit dessen Hilfe wir Hystrix-Streams konsolidieren können. Und wie wir Turbine einsetzen, werden wir uns nun einmal anschauen. In diesem Video haben wir uns damit auseinandergesetzt, wie wir unsere Applikation um das Hystrix-Dashboard erweitern können und wie wir den Hystrix-Stream abgreifen können, um einen einzelnen Service zu überwachen. Damit haben wir schon eine Grundlage dafür gelegt, um tatsächlich über das Verhalten unserer Applikation auf dem Laufenden zu sein, und können dies nun tatsächlich in der Praxis nutzen, um ein Gefühl dafür zu bekommen, wie unsere Applikation unter Last reagiert.

Der Spring Cloud Netflix Stack Grundkurs

Lernen Sie den Open Source Cloud Stack und seine vielfältigen Einsatzmöglichkeiten kennen.

2 Std. 5 min (13 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:06.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!