Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Dieses Feature befindet sich in der Betaversion. Wenden Sie sich an Ihren Azure Databricks Vertreter, um Den Zugriff anzufordern. Nachdem das Feature aktiviert wurde, können Arbeitsbereichsadministratoren den Zugriff darauf über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
Auf dieser Seite wird beschrieben, wie Sie eine Databricks-App über mehrere Instanzen hinter einer einzelnen App-URL für eine höhere Verfügbarkeit und Parallelität ausführen.
Die horizontale Skalierung verteilt Anforderungen über Instanzen hinweg, sodass ein einzelner Instanzfehler oder Neustart die App nicht offline schalten kann. Die Rechenkosten skalieren linear mit der Anzahl der Instanzen.
Zu den weiteren Vorteilen gehören:
- Sitzungsaffinität: Jede Anforderung desselben Benutzers wird nach dem Best-Effort-Prinzip an dieselbe Instanz weitergeleitet, sodass eine App kurzlebige benutzerspezifische Daten (z. B. einen In-Memory-Cache) auf dieser Instanz vorhalten kann. Auch bekannt als Sticky Sessions. Siehe Sitzungsaffinität.
- Zero-downtime deployments: Azure Databricks rollt zuerst eine neue Bereitstellung für eine Buildinstanz aus und aktualisiert nur die verbleibenden Instanzen, nachdem diese Buildinstanz erfolgreich war. Die vorhandenen Instanzen bearbeiten weiterhin durchgehend den Datenverkehr.
- Stabile Build-Caches: Azure Databricks bewahrt Bereitstellungsartefakte bei Änderungen an den Computeressourcen auf (z. B. wenn Sie die Größe oder Anzahl der Instanzen ändern), sodass die App keinen vollständigen Neuaufbau erfordert.
Requirements
Die folgenden Anforderungen gelten für alle horizontal skalierten Apps:
- Während der Beta-Phase muss Ihre App auf
0.0.0.0lauschen (nicht auf127.0.0.1oderlocalhost).
Erstellen einer horizontal skalierten App
So erstellen Sie eine App mit aktivierter horizontaler Skalierung:
- Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf den
App-Umschalter und wählen Sie Databricks Apps aus.
- Klicken Sie auf +App erstellen, und klicken Sie dann auf "Benutzerdefinierte App erstellen".
- Geben Sie einen Namen ein, und konfigurieren Sie die App, wie in " Erstellen einer benutzerdefinierten Databricks"-App beschrieben.
- Wählen Sie im Schritt "Konfigurieren"die Option "Horizontale Skalierung aktivieren" aus.
- Geben Sie die Anzahl der Instanzen an (1 bis 5). Azure Databricks empfiehlt mindestens 2 Instanzen für die Verfügbarkeit.
- Klicken Sie auf "App erstellen".
Das Aktivieren der horizontalen Skalierung für eine App wirkt sich nicht auf andere Apps im Arbeitsbereich aus.
Neu erstellte horizontal skalierte Apps enthalten nicht die vorinstallierten Python-Bibliotheken. Deklarieren Sie alle Abhängigkeiten in requirements.txt oder pyproject.toml. Siehe Verwalten von Abhängigkeiten für eine Databricks-App.
Konvertieren einer Standard-App zur Verwendung der horizontalen Skalierung
Konvertieren Sie eine vorhandene Standard-App auf der Registerkarte "Einstellungen " in eine horizontal skalierte App. Bei der Konvertierung werden keine Ausfallzeiten eingeführt. Ihre vorhandene Standard-App wickelt den Datenverkehr weiter ab, bis die neue horizontal skalierte Bereitstellung die Integritätsprüfungen besteht; ab diesem Zeitpunkt schaltet Azure Databricks den Datenverkehr um.
Die Konvertierung ist umkehrbar. Sie können eine horizontal skalierte App von derselben Registerkarte " Einstellungen " wieder in eine Standard-App konvertieren.
Konversionsverhalten
Das folgende Verhalten gilt zur Konvertierungszeit:
- Die Instanzanzahl ist auf 1 festgelegt. Nach der Konvertierung können Sie die Anzahl (bis zu 5) ändern. Siehe Verwalten der Instanzenanzahl.
- Die konvertierte App verwendet weiterhin die vorinstallierten Python Bibliotheken, sodass vorhandene Abhängigkeiten weiterhin funktionieren. Wenn es stattdessen auf einem sauberen Basis-OS-Image ausgeführt werden soll, melden Sie sich nach der Konvertierung davon ab. Siehe Vorinstallierte Python-Bibliotheken für Databricks-Apps deaktivieren.
Testen der Konvertierung
Die Konvertierung ändert das Laufzeitimage und das Skalierungsmodell Ihrer App. Überprüfen Sie die Änderung vor dem Konvertieren einer Produktions-App an einem Duplikat:
- Erstellen Sie ein Duplikat der Standard-App, die Sie konvertieren möchten.
- Konvertieren Sie das Duplikat mithilfe der folgenden Schritte.
- Überprüfen Sie, ob die App wie erwartet für das konvertierte Duplikat funktioniert. Überprüfen Sie Protokolle, Datenverkehr und jegliches Verhalten im Zusammenhang mit der Session-Affinität.
- Wandeln Sie die Produktions-App nach der Validierung um.
Konvertieren einer Standard-App
So konvertieren Sie eine Standard-App in horizontal skalierte:
- Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf den
App-Umschalter und wählen Sie Databricks Apps aus.
- Klicken Sie auf den Namen der App, die Sie konvertieren möchten.
- Klicken Sie auf die Registerkarte Einstellungen.
- Wählen Sie unter "Berechnen" die Option "Horizontale Skalierung aktivieren" aus. Azure Databricks legt die Instanzanzahl auf 1 fest, die zur Konvertierungszeit erforderlich ist.
- Klicke auf Speichern.
Azure Databricks startet neue horizontal skalierte Rechenressourcen und stellt Ihre App dann erneut darauf bereit. Die Gesamtzeit hängt von der Builddauer Ihrer App ab. Die bestehende App verarbeitet den Datenverkehr durchgehend.
Nach Abschluss der Konvertierung können Sie hochskalieren oder auf vorinstallierte Bibliotheken verzichten.
Verwalten der Instanzanzahl
So ändern Sie die Anzahl der Instanzen für eine horizontal skalierte App:
- Klicken Sie auf der Seite "App-Details " auf "Bearbeiten".
- Aktualisieren Sie im Schritt "Konfigurieren" die Anzahl der Instanzen.
- Klicke auf Speichern.
Die App bedient weiterhin Datenverkehr, während Azure Databricks die Änderung anwendet.
Sitzungsaffinität
Die Sitzungsaffinität leitet jede Anforderung von demselben Benutzer nach Möglichkeit an dieselbe Instanz weiter. Eine App kann dieses Routing verwenden, um kurzlebige Benutzerdaten (z. B. einen Speichercache oder temporäre Dateien im lokalen Dateisystem) für die Instanz beizubehalten, die die Sitzung dieses Benutzers behandelt. Die Sitzungsaffinität ist auch als "Sticky Sessions" bekannt.
Sitzungsaffinität ist der beste Aufwand. Speichern Sie nichts im instanzlokalen Zustand, den Sie nicht rekonstruieren oder aus einem dauerhaften Speicher abrufen können. Speichern Sie alle Daten, die über eine Sitzung hinaus bestehen bleiben müssen, in einem persistenten Speicher wie Tabellen im Unity Catalog.
Sie können auch Daten mit Lakebase speichern.
Browserbasierte Apps
Sitzungsaffinität funktioniert automatisch für browserbasierte Apps. Die erste Anforderung von einem Browser leitet zu einer zufällig ausgewählten Instanz weiter, die das __Host-databricks-app-router Cookie festlegt. Nachfolgende Anforderungen mit diesem Cookie werden an dieselbe Instanz weitergeleitet.
API-Clients
Um die Sitzungsaffinität für API-Clients zu erhalten, fügen Sie das __Host-databricks-app-router Cookie in jede Anforderung ein, und legen Sie es auf eine zufällig generierte UUID fest. Alle Anforderungen mit demselben Cookiewert werden an dieselbe Instanz weitergeleitet.
curl -X GET https://<your-app>.aws.databricksapps.com/api/endpoint \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-b "__Host-databricks-app-router=f8822466-3b1e-423a-988b-54c9e639c250"
Neuzuweisung von Sitzungen
Sitzungen können in den folgenden Fällen zu einer anderen Instanz wechseln:
- Eine Instanz ist nicht verfügbar (z. B. während der Bereitstellung oder eines Absturzes).
- Sie ändern die Instanzenanzahl.
- Azure Databricks verteilt Sitzungen auf Instanzen neu.
- Eine einzelne Anforderung wird falsch umgeleitet (selten).
Einschränkungen
Die folgenden Einschränkungen gelten für horizontal skalierte Apps:
- Jeder Arbeitsbereich kann maximal 5 horizontal skalierte Apps aufweisen. Wenden Sie sich an Ihren Azure Databricks Vertreter, um diesen Grenzwert zu erhöhen.
- Jede horizontal skalierte App kann höchstens fünf Instanzen aufweisen. Wenden Sie sich an Ihren Azure Databricks Vertreter, um diesen Grenzwert zu erhöhen.
- Auf der Registerkarte "Protokolle " werden Protokolle aus einer einzelnen Instanz gleichzeitig angezeigt. Aktivieren Sie die App-Telemetrie, um Protokolle in allen Instanzen anzuzeigen.