Pull-Warteschlangen zu Pub/Sub (Java) migrieren

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 folgenden Abschnitten werden die Schritte zur Einrichtung beschrieben, bevor Sie Ihre Pull-Warteschlangen zu Pub/Sub migrieren.

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

Cloud-Clientbibliotheken 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 Abonnent

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.

Nächste Schritte