Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Der Spring Cloud Netflix Stack Grundkurs

Eine zweite Eureka-Instanz integrieren

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Nachdem Eureka aufgesetzt und in die Applikation integriert wurde, erklärt Ihnen Karsten Samaschke, wie Sie eine zweite Instanz eines Services integrieren können und wie sich Eureka mit dem Zuul-Proxy sinnvoll einsetzen lässt. Zusätzlich wissen Sie nach diesem Video, wie Sie ein Problem mit der In-Memory-Datenbank des Backend-Services lösen können.

Transkript

"Ein Eureka alleine macht noch keinen Sommer." Das ist ein bekanntes Sprichwort unter Cloud-Entwicklern und ist dann auch das Motto dieses Videos. Wir werden uns deshalb in diesem Video einmal anschauen, wie wir unsere Applikation tatsächlich sinnvoll mit Eureka verknüpfen können und werden zu diesem Zweck zum einen den Backend-Server in einer zweiten Instanz starten und werden den Proxy-Server so abändern, dass er nicht mehr mit fest verdrahteten Adressen für Frontend- und Backend-Server arbeitet, sondern die Services selber anspricht und sich die Konfiguration dynamisch aus Eureka zieht. Lassen Sie uns zunächst einmal den Backend-Service in einer zweiten Instanz starten. Wir müssen dafür im Code nichts ändern. Alles was wir tun müssen, ist, in den Bereich "Run Configurations" von Eclipse zu wechseln und die bereits existierende "Run Configuration" für den Backend-Service einmal per Rechtsklick zu duplizieren Wir können dann dieser neuen Konfiguration einen entsprechenden Namen geben, klicken auf "Apply" und wechseln in den Reiter "Arguments". Im Bereich "VM Arguments" können wir nun mit Hilfe von "-Dserver_port" einen Port angeben, ich gebe hier den Port "0" an. Port "0" bedeutet, es wird ein zufälliger Port gewählt, der gerade auf dem System frei ist. Ein Klick auf "Apply" übernimmt diese Einstellung, ein Klick auf "Run" startet dann den Server. Nach ein paar Sekunden ist der Server gestartet und wird sich dann auch direkt bei Eureka registrieren und wir wechseln nun einmal in das Eureka Dashboard und schauen uns an, ob und wie sich dieser Server registriert hat. Hier im Eureka Dashboard aktualisiere ich einmal die Informationen und sehe nun, ich habe zwei Einträge für den Backend-Server, es laufen also zwei Instanzen. Die zweite Instanz lauscht auf einen zufälligen Port, das sieht man in der Statuszeile. Es ist dies der Port 62190. Jetzt haben wir diese Instanzen angelegt, das ist großartig, jetzt müssen wir sie nur noch nutzen und zu diesem Zweck wechseln wir nun zurück in Eclipse und werden dort den Proxy-Server anpassen. Die Anpassungen am Zuul-Proxy beschränken sich darauf, dass wir die Datei "application.yml" öffnen und hier die Routen editieren. Bisher haben wir hier ja fest verdrahtete Adressen drin, diese Adressen sollen ja zukünftig aus Eureka bezogen werden. Wir löschen deshalb das Attribut "url:" und fügen stattdessen das Attribut "serviceId:" ein und dieser "serviceId"-Wert entspricht dem Wert, unter dem der Service im Eureka registriert ist. Der Backend-Service heißt ja dort "backend" und der Frontend-Service heißt "frontend". Beim Backend-Service fügen wir nun noch ein weiteres Attribut hinzu, nämlich "strip-prefix" und das setzen wir auf "false". Würden wir das nicht tun, würde nämlich dieser vordere Bestandteil der Adresse "/guestbook/" entfernt werden und das würde zu einer Fehlermeldung führen. Damit haben wir den Proxy-Service schon ausreichend angepasst. Wir können die Konfigurationsdatei speichern und den Service neu starten. Sobald dies geschehen ist, können wir das Gästebuch im Browser aufrufen. Wie gehabt befindet sich das Gästebuch auf Port 8000 und kann hier entsprechend aufgerufen werden. Wir können nun einen neuen Eintrag hinzufügen. "Erster Eintrag per Proxy und Eureka" und sobald wir das erledigt haben und einen Namen mit angegeben haben können wir auf "Speichern" klicken und der Eintrag wird gespeichert und entsprechend dargestellt. Was Sie jetzt hier erleben können, ist, dass dieser Eintrag regelmäßig erscheint oder verschwindet. Das ist jetzt eigentlich kein echtes Problem der Applikation in dem Sinne, sondern das liegt einfach daran, dass wir aktuell eine In-Memory-Datenbank verwenden. Bei jedem der beiden Backend-Services die laufen, gibt es eine eigenständige Instanz dieser Datenbank und beim Aktualisieren wird offensichtlich bei jedem Aufruf eine andere Instanz angesprochen. Da sehen Sie aber, dass diese Konfiguration bereits funktioniert. Wir werden uns nun noch kurz anschauen, wie wir das auf Ebene des Backends ändern können und danach ist die Applikation grundsätzlich einsatzfähig mit dynamischen Services. Lassen Sie uns einmal in die Konfiguration der Backend-Applikation wechseln und hier fügen wir nun einen Eintrag hinzu, nämlich "spring.datasource.url". Die zeigt auf eine definierte Datenquelle und wir geben hier an, dass es sich um die Datei "test" im aktuellen Applikations-Verzeichnis handeln soll und -- ganz wesentlich -- wir haben den Server-Modus aktiviert. Damit können nämlich mehrere Services parallel auf diese Datei zugreifen, die jetzt hier generiert wird. Nachdem wir das gespeichert haben, müssen wir einmal die Backend-Services, so wie sie bereits existieren, neu starten bzw. beenden und können nun ein oder zwei Backend-Services gerne auf zufälligen Ports starten. Das dauert ein paar Sekunden, sobald dies erledigt ist, werden wir uns das Gästebuch noch einmal in Aktion anschauen und werden dann feststellen, ob bzw. dass unsere Änderungen erfolgreich waren. Zunächst einmal aktualisiere ich das Gästebuch, jetzt ist nichts mehr da. Klar, wir haben ja die Applikation neu gestartet. Jetzt fügen wir einen neuen Eintrag hinzu und speichern diesen Eintrag. Wenn wir nun auf die Startseite wechseln, dann erscheint dieser Eintrag und wenn wir auf "Aktualisieren" klicken, dann bleibt er auch stehen. Das bedeutet, dass unsere Konfigurationsänderung erfolgreich war. In diesem Video haben wir uns damit auseinandergesetzt, wie wir ein alleinstehendes Eureka sinnvoll in unsere Applikation einbinden können; wir haben den Backend-Service in mehreren Instanzen auf zufälligen Ports gestartet und wir haben den Proxy-Service so angepasst, dass er mit den Informationen aus Eureka arbeitet und interagiert. Gleichzeitig haben wir noch ein Konfigurationsproblem gelöst, also doch eine ganze Menge geschafft.

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
Ihr(e) Trainer:
Erscheinungsdatum:06.03.2017
Laufzeit:2 Std. 5 min (13 Videos)

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!