Auf dieser Seite wird erläutert, wie Pull-Warteschlangen-Code aus Aufgabenwarteschlangen zu Pub/Sub migriert wird. Pub/Sub ist jetzt die bevorzugte Methode zur Ausführung von Pull-Warteschlangen in App Engine.
Wenn Ihre Anwendung sowohl Pull- als auch Push-Warteschlangen verwendet, migrieren Sie Ihre Pull-Warteschlangen mithilfe dieser Anleitung zu Pub/Sub, bevor Sie Ihre Push-Warteschlangen in den neuen Push-Warteschlangendienst Cloud Tasks migrieren. Die Migration von Pull-Warteschlangen nach der Migration von Push-Warteschlangen zu Cloud Tasks wird nicht empfohlen, da die erforderliche Verwendung der Datei queue.yaml
wahrscheinlich ein unerwartetes Verhalten bei Cloud Tasks verursacht.
Features, die derzeit nicht in Pub/Sub verfügbar sind
Die folgenden Aufgabenwarteschlangen-Funktionen sind derzeit in Pub/Sub nicht verfügbar:
- Batching nach Tag
- Automatische Deduplizierung
Preise und Kontingente
Die Migration Ihrer Pull-Warteschlangen zu Pub/Sub kann sich auf die Preise und Kontingente Ihrer Anwendung auswirken.
Preise
Pub/Sub hat ein eigenes Preismodell. Wie bei Aufgabenwarteschlangen kann das Senden von Anfragen an Ihre App Engine-Anwendung mit Pub/Sub dazu führen, dass Ihre Anwendung Kosten verursacht.
Kontingente
Die Pub/Sub-Kontingente unterscheiden sich von den Kontingenten für Aufgabenwarteschlangen. Wie bei Aufgabenwarteschlangen kann sich das Senden von Anfragen von Pub/Sub an Ihre App Engine-Anwendung auf Ihre App Engine-Anfragekontingente auswirken.
Vor der Migration
In diesem Abschnitt werden Themen behandelt, die Sie vor der Migration Ihrer Pull-Warteschlangen zu Pub/Sub behandeln müssen.
Pub/Sub API aktivieren
Zur Aktivierung der Pub/Sub API klicken Sie in der API-Bibliothek für die Pub/Sub API aufAktivieren. Wenn die Schaltfläche Verwalten anstelle der Schaltfläche Aktivieren angezeigt wird, haben Sie die Pub/Sub API für Ihr Projekt bereits aktiviert und Sie müssen dies nicht noch einmal tun.
Anwendung für die Pub/Sub API authentifizieren
Sie müssen Ihre Anwendung für die Pub/Sub API authentifizieren. In diesem Abschnitt wird die Authentifizierung für zwei verschiedene Anwendungsfälle erläutert.
Wenn Sie Ihre Anwendung lokal entwickeln oder testen möchten, empfehlen wir die Verwendung eines Dienstkontos. Anleitungen zum Einrichten eines Dienstkontos und zum Verknüpfen des Dienstkontos mit Ihrer Anwendung finden Sie unter Dienstkonto-Anmeldedaten manuell abrufen und bereitstellen.
Zur Bereitstellung Ihrer Anwendung in App Engine müssen Sie keine neue Authentifizierung bereitstellen. Die Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) leiten die Authentifizierungsdetails für App Engine-Anwendungen ab.
Google Cloud CLI herunterladen
Laden Sie die Google Cloud CLI herunter und installieren Sie sie, um die gcloud CLI mit der Pub/Sub API zu verwenden, falls Sie sie nicht bereits installiert haben. Führen Sie den folgenden Befehl über Ihr Terminal aus, wenn Sie die Google Cloud CLI bereits installiert haben.
gcloud components update
Client-Bibliothek für Java importieren
Folgen Sie der Pub/Sub-Anleitung zur Installation der Clientbibliothek, um die Clientbibliothek mit Ihrer Anwendung zu verwenden.Pub/Sub und Pull-Warteschlangen
Funktionsvergleich
Pub/Sub sendet über eine Publisher-Abonnenten-Beziehung Arbeit an Worker. Ein Pull-Abo in Pub/Sub ist wie eine Pull-Warteschlange in Aufgabenwarteschlangen, da der Abonnent die Nachricht aus dem Thema abruft. In der folgenden Tabelle sind die Hauptfeatures für Pull-Warteschlangen in Aufgabenwarteschlangen und das zugehörige Feature für Pull-Abos in Pub/Sub aufgeführt.
Aufgabenwarteschlangen-Feature | Pub/Sub-Feature |
---|---|
Warteschlange | Thema |
Aufgabe | Meldung |
Worker | Subscriber |
Weitere Informationen zur Pub/Sub-Architektur erhalten Sie unter Cloud Pub/Sub: Skalierbarer Messaging-Dienst für Google.
Workflow-Vergleich
Im Folgenden wird ein typischer Workflow für eine Pull-Warteschlange in Aufgabenwarteschlangen und ein Pull-Abo in Pub/Sub verglichen.
Aufgabenwarteschlangen-Workflow | Pub/Sub-Workflow |
---|---|
Sie erstellen die Pull-Warteschlange | Sie erstellen das Thema und abonnieren Ihren Abonnenten (z. B. Worker) für das Thema |
Sie erstellen die Aufgabe und setzen sie in die Warteschlange | Sie erstellen die Nachricht und veröffentlichen sie im Thema |
Der Worker fordert die Freigabe der Aufgabe an | Der Abonnent ruft die Nachricht aus dem Thema ab |
Der Worker verarbeitet die Aufgabe | Der Abonnent verarbeitet die Nachricht |
Der Worker löscht die Aufgabe aus der Warteschlange | Der Abonnent bestätigt die Nachricht |
Die Freigabe läuft ab | Das Thema löscht die Nachricht, wenn alle ihre Abonnenten die Nachricht bestätigt haben |
Pull-Abos in Pub/Sub erstellen
Sie können ein Pub/Sub-Pull-Abo wie eine Pull-Warteschlange für Aufgabenwarteschlangen verwenden. Abos für ein Thema laufen nicht ab und können gleichzeitig für mehrere Worker gelten. Das bedeutet, dass eine Nachricht von mehr als einem Worker verarbeitet werden kann. Dies ist einer der primären Anwendungsfälle für Pub/Sub. Zum nochmaligen Erstellen Ihrer Pull-Warteschlangen für Aufgabenwarteschlangen als Pub/Sub-Pull-Abos erstellen Sie für jeden Worker ein Thema und abonnieren nur den zugehörigen Worker für das Thema. Dadurch wird jede Nachricht von genau einem Worker wie in Aufgabenwarteschlangen verarbeitet. Weitere Informationen zum Erstellen und Verwalten von Pull-Abos finden Sie unter Themen und Abos verwalten.
Pull-Warteschlangen löschen
Nachdem Sie Ihre Pull-Warteschlangen für Aufgabenwarteschlangen zu Pub/Sub-Pull-Abos migriert haben, löschen Sie sie mithilfe der Datei queue.yaml
aus den Aufgabenwarteschlangen. Wir empfehlen, jede Pull-Warteschlange vor der Migration der nächsten zu löschen. Dadurch wird verhindert, dass Ihre Anwendung die Arbeit dupliziert, die sie aus dem neuen Pub/Sub-Pull-Abo erhält, während Sie die anderen Pull-Warteschlangen migrieren. Wenn Sie Ihre Pull-Warteschlangen für Aufgabenwarteschlangen eine nach der anderen und nicht in einer einzelnen Bereitstellung löschen, könnte sich dies stärker auf das Bereitstellungskontingent von App Engine auswirken.
Nachdem Sie alle Pull-Warteschlangen aus Aufgabenwarteschlangen gelöscht haben, können Sie die Datei queue.yaml
aus zukünftigen Bereitstellungen Ihrer Anwendung weglassen.
Wenn Ihre Anwendung nur Pull-Warteschlangen verwendet, entfernen Sie in Ihrem Code alle Verweise auf die Task Queues API. Wenn Ihre Anwendung sowohl Pull- als auch Push-Warteschlangen verwendet, können Sie entweder die Verweise auf die Task Queues API entfernen, die nur in Dateien mit Pull-Warteschlangen vorhanden sind, oder warten, bis Sie auch die Push-Warteschlangen migriert haben und dann die Verweise auf die Task Queues API aus allen Dateien entfernen.