Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwalten und Skalieren einer Java-Anwendung in Heroku

Anzeigen Ihrer Heroku-Anwendungslogs

Heroku behandelt Protokolle als Ströme zeitlich geordneter Ereignisse, die aus der Ausgabe Ihrer Anwendung und den Heroku-Komponenten stammen, die sie ausführen. Das Ergebnis ist ein einzelner Kanal für sämtliche Protokollereignisse. Sie können die Protokollausgabe der Anwendung, die Sie in der vorherigen Einheit erstellt haben, anzeigen, indem Sie den Befehl heroku logs --tail ausführen.

heroku logs --tail

Beispiel für Heroku-Anwendungsprotokolle

Setzen Sie die Ausführung dieses Befehls fort und besuchen Sie Ihre Anwendung erneut im Browser, indem Sie heroku open in einer anderen Terminalsitzung ausführen (oder einfach die Webseite aktualisieren, falls sie noch geöffnet ist). Wie Sie sehen, wird bei jedem Besuch der Seite eine Protokollmeldung erzeugt.

Drücken Sie dann STRG+C, um das Streamen der Protokolle zu beenden.

Untersuchen der Prozesse Ihrer Anwendung

Momentan wird Ihre Anwendung in einem einzigen Web-Dyno ausgeführt. Ein Dyno ist ein schlanker Container, der den Befehl ausführt, der in der Procfile einer Anwendung angegeben ist. Die Procfile ist eine Textdatei im Stammverzeichnis Ihrer Anwendung. Mithilfe der Procfile wird explizit deklariert, welcher Befehl ausgeführt werden soll, um Ihre Anwendung zu starten. Dies ist die Procfile der Beispielanwendung, die Sie bereitgestellt haben.

web: java -jar target/java-getting-started-1.0.jar

Mit dem Befehl heroku ps können Sie prüfen, wie viele Web-Dynos ausgeführt werden.

heroku ps

Ausgabe von 'heroku ps'

Standardmäßig wird Ihre App in einem kostenlosen Dyno bereitgestellt. Kostenlose Dynos gehen nach einer halben Stunde Inaktivität in den Ruhemodus (wenn sie keinen Datenverkehr empfangen). Dies führt bei der ersten Anforderung nach dem "Aufwachen" zu einer Verzögerung von ein paar Sekunden. Bei nachfolgenden Anforderungen ist die Leistung normal. Kostenlose Dynos werden auf ein monatliches, pro Account angesetztes Kontingent an kostenlosen Dyno-Stunden angerechnet: Solange das Kontingent nicht erschöpft ist, können alle kostenlosen Anwendung weiter ausgeführt werden.

Wenn Sie vermeiden möchten, dass Dynos in den Ruhezustand wechseln, können Sie ein Upgrade auf einen hobbymäßigen oder professionalen Dyno-Typ durchführen (siehe Beschreibung im Artikel Arten von Dynos). Wenn Sie Ihre Anwendung beispielsweise zu einem professionellen Dyno migrieren, können Sie sie einfach skalieren, indem Sie einen Befehl ausführen, der Heroku anweist, eine bestimmte Anzahl von Dynos auszuführen, von denen jeden Ihren Webprozesstyp ausführt.

Skalieren Ihrer Anwendung

Zum Skalieren einer Anwendung in Heroku ändern Sie die Zahl der ausgeführten Dynos. Sie sollten dies tun, um Redundanz zu gewährleisten (falls ein Prozess abstürzt, gibt es noch einen anderen, der Anforderungen bearbeiten kann), oder weil Sie mehr Verkehr empfangen als Ihr einzelner Dyno bewältigen kann (ein angenehmes Problem).

Skalieren Sie die Zahl der Web-Dynos zunächst auf Null.

heroku ps:scale web=0

Greifen Sie dann erneut auf die Anwendung zu, indem Sie die Webseite aktualisieren, oder führen Sie heroku open aus, um die Anwendung in einem Browserfenster zu öffnen. Sie erhalten eine Fehlermeldung, da keine Web-Dynos mehr für die Verarbeitung von Anforderungen verfügbar sind.

Skalieren Sie die Anwendung jetzt wieder nach oben.

heroku ps:scale web=1

Um Missbrauch zu vermeiden, ist eine Account-Überprüfung erforderlich, um eine nicht kostenlose Anwendung auf mehr als einen Dyno zu skalieren.

Ausführen von Verwaltungsaufgaben

Für manche Anwendungsaufgaben muss ein einmaliger Auftrag von der Befehlszeile aus ausgeführt werden. Zur Ausführung dieser Aufträge, bei denen es sich häufig um in der Anwendung enthaltene Skripts handelt, führen Sie einen Einmal-Dyno mit dem Befehl heroku run aus. Der Befehl kann auch zum Starten eines REPL- oder Konsolenprozesses verwendet werden, der mit Ihrem lokalen Terminal verknüpft ist, um in der Umgebung Ihrer Anwendung zu experimentieren oder Code auszuführen, der mit Ihrer Anwendung bereitgestellt wird. Für dieses Beispiel verwenden wir den Befehl heroku run bash.

heroku run bash

Ausgabe des Befehls 'heroku run bash'

Wenn Sie den Fehler "Error connecting to process (Fehler beim Verbinden mit dem Prozess)" angezeigt bekommen, müssen Sie eventuell Ihre Firewall konfigurieren.

Vergessen Sie nicht, exit einzugeben, um die Shell zu verlassen und den Dyno zu beenden.

Klicken Sie Verify Step (Schritt überprüfen), um zum nächsten Schritt im Projekt zu gelangen.

Ressourcen