Sowohl Cloud Tasks als auch Pub/Sub können zur Implementierung von Message Passing und asynchroner Integration verwendet werden. Obwohl die Dienste auf ähnliche Weise funktionieren, weisen sie Unterschiede auf. 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. Deshalb können sie 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.
Zusätzlich bietet Cloud Tasks Tools für die Verwaltung von Warteschlangen und Aufgaben, die Publishern in Pub/Sub nicht zur Verfügung stehen. Dazu gehören:
- Planung bestimmter Lieferzeiten
- Einstellung der Lieferrate
- Konfigurierbare Wiederholungsversuche
- Zugriff und Verwaltung einzelner Aufgaben in einer Warteschlange
- Deduplizierung bei der Erstellung von Aufgaben/Nachrichten
Detaillierter Funktionsvergleich
Funktion | Cloud Tasks | Cloud Pub/Sub |
---|---|---|
Push über Webhooks | Ja | Ja |
Mindestens einmalige Zustellung | Ja | Ja |
Konfigurierbare Wiederholungsversuche | Ja | Ja |
Deduplizierung bei der Aufgabenerstellung | Ja | Nein |
Planung von Lieferzeiten | Ja | Nein |
Bestellte Lieferung | Nein. Die Reihenfolge der Aufgaben in der Warteschlange wird nach dem Best-Effort-Prinzip beibehalten. | Ja mit Bestellschlüsseln |
Explizite Kontrolle der Lieferrate | Ja | Pull-Abonnenten-Clients können Ablaufsteuerung implementieren |
Pull über API | Nein | Ja |
Batch-Insert | Nein | Ja |
Mehrere Handler/Abonnenten pro Nachricht | Nein | Ja |
Aufbewahrung von Aufgaben/Nachrichten | 30 Tage | Bis zu 31 Tage |
Maximale Aufgaben-/Nachrichtengröße | 1 MB | 10 MB |
Maximale Lieferrate | 500 QPS/Warteschlange | Keine Obergrenze |
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/Abonnements pro Projekt | 1.000/Projekt, weitere verfügbar über Kontingentanforderung | 10.000/Projekt |