Pub/Sub- oder Cloud-Aufgaben auswählen

Sowohl Cloud Tasks als auch Pub/Sub können zur Implementierung von Message Passing und asynchroner Einbindung verwendet werden. Obwohl die Dienste auf ähnliche Weise funktionieren, zeichnen sie sich jeweils durch wichtige Unterschiede aus. Auf dieser Seite erfahren Sie, wie Sie das richtige Produkt für Ihren Anwendungsfall auswählen.

Wichtige Unterschiede

Der Hauptunterschied zwischen Pub/Sub und Cloud Tasks ist die Verwendung von impliziten gegenüber expliziten Aufrufen.

In Pub/Sub sollen Publisher von Ereignissen entkoppelt und Abonnenten mit diesen Ereignissen gekoppelt werden. Publisher müssen nichts über ihre Abonnenten wissen. Sie können in Pub/Sub versendete Ereignisdaten nicht steuern – sie wissen lediglich, dass die Daten zugestellt werden. So werden in Pub/Sub implizite Aufrufe unterstützt: Abonnenten werden implizit vom Publisher dazu veranlasst, ein Ereignis aktiv zu veröffentlichen.

In Cloud Tasks werden dagegen explizite Aufrufe unterstützt. Das bedeutet, dass Publisher die volle Kontrolle über versendete Ereignisdaten erhalten und somit auch festlegen, wohin diese versendet werden.

Insgesamt eignet sich Cloud Tasks am besten für Anwendungsfälle, bei denen ein Task-Producer den Ausführungszeitpunkt eines bestimmten Webhooks oder Remote-Prozeduraufrufs verschieben oder steuern muss. Pub/Sub ist optimal für eine allgemeinere Ereignisdatenaufnahme und für Verteilungsmuster, bei denen keine vollumfängliche Kontrolle der Ausführung erforderlich ist.

Detaillierter Funktionsvergleich

Funktion Cloud Tasks Pub/Sub
Push-Benachrichtigungen über Webhooks Ja Ja
Mindestens einmalige Zustellung Ja Ja
Konfigurierbare Wiederholungsversuche Ja Ja
Deduplizierung bei der Erstellung von Aufgaben/Nachrichten Ja Nein
Planung von Lieferzeiten Ja Nein
Bestellte Lieferung Nein, die Reihenfolge der Aufgaben in der Warteschlange wird bestmöglich beibehalten Ja, mit Sortierungsschlüsseln
Explizite Kontrolle der Lieferrate Ja Pull-Abonnentenclients können eine Ablaufsteuerung implementieren
Pull-Benachrichtigungen über API Nein Ja
Batch-Insert Ja Ja
Mehrere Handler/Abonnenten pro Nachricht Nein Ja
Aufbewahrung von Aufgaben/Nachrichten 31 Tage Bis zu 31 Tage
Maximale Aufgaben-/Nachrichtengröße 1MB 10MB
Maximale Lieferrate 500 QPS/Warteschlange Keine Obergrenze, unterliegt regionalen Durchsatzkontingenten
Geografische Verfügbarkeit Regional Global
Maximale Verarbeitungsdauer für Push-Handler/Abonnenten 30 Minuten (HTTP)
10 Minuten (Autoscaling für App Engine-Standardumgebung)
24 Stunden (manuelle oder einfache Skalierung für App Engine-Standardumgebung)
60 Minuten (flexible App Engine-Umgebung)
10 Minuten für Push-Vorgänge
Anzahl der Warteschlangen/Abos 1.000 pro Projekt und Region, weitere verfügbar über Kontingentanforderung 10.000 pro Projekt