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. In diesem Leitfaden erfahren Sie, wie Sie das richtige Produkt für Ihren Anwendungsfall auswählen.
Wichtige Unterschiede
Pub/Sub und Cloud Tasks unterscheiden sich hauptsächlich darin, ob sie implizite oder explizite Aufrufe verwenden.
Pub/Sub entkoppelt Ereignis-Publisher von ihren Abonnenten. 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 implizite Aufrufe unterstützt: Ein Publisher löst die Ausführung von Abonnenten aus, indem er ein Ereignis veröffentlicht.
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:
- Bestimmte Lieferzeiten planen
- Einstellungen für die Lieferrate
- Präzise konfigurierbare Wiederholungsversuche
- Zugriff und Verwaltung einzelner Aufgaben in einer Warteschlange
- Deduplizierung bei der Aufgabenerstellung
Detaillierter Funktionsvergleich
| Funktion | Cloud Tasks | Pub/Sub |
|---|---|---|
| Push über Webhooks | Ja | Ja |
| Garantie für 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 in die Warteschlange eingereihten Aufgaben wird bestmöglich beibehalten. | Ja, mit Sortierungsschlüsseln |
| Explizite Kontrolle der Lieferrate | Ja | Pull-Abonnentenclients können eine Ablaufsteuerung implementieren. |
| Pull ü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 | 1 MB | 10 MB |
| Maximale Lieferrate | 500 QPS/Warteschlange | Keine Obergrenze, vorbehaltlich regionaler Durchsatzkontingente |
| 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 | 1.000 pro Projekt und Region, weitere verfügbar über Kontingentanforderung | 10.000 pro Projekt |
Konfigurierbare Unterschiede bei Wiederholungsversuchen
Cloud Tasks bietet eine präzise Steuerung von Aufgabenwiederholungen, einschließlich fester Grenzwerte für Versuche und Dauer. Pub/Sub konzentriert sich auf die zuverlässige Zustellung und verwendet exponentiellen Backoff und Warteschlangen für unzustellbare Nachrichten (Dead-Letter Queues, DLQ), um Wiederholungsversuche für nicht bestätigte Nachrichten zu verwalten.
| Funktion | Cloud Tasks | Pub/Sub |
|---|---|---|
| Fokus des Anwendungsfalls | Sicherstellen, dass eine bestimmte Aufgabe ausgeführt wird | Nachrichtenzustellung an entkoppelte Abonnenten |
| Primäre Steuerung | Konfiguration für Wiederholungsversuche auf Warteschlangen- und Aufgabenebene | Wiederholungsrichtlinie und DLQ auf Aboebene |
| Wiederholungsversuche beenden | Maximale Anzahl von Versuchen, maximale Wiederholungsdauer | Nachrichtenerkennung, Ablauf von Nachrichten oder DLQ-Übertragung |
| Maximale Anzahl von Versuchen | Explizit konfigurierbar | Indirekt über die maximale Anzahl von Zustellversuchen für die DLQ |
| Backoff-Abstimmung | Minimaler/maximaler Backoff, maximale Anzahl Wiederholungen | Minimaler/maximaler Backoff für die Richtlinie für exponentiellen Backoff |
| Unbefristete Wiederholungsversuche | Möglich, wenn konfiguriert, aber durch das maximale Limit für die Aufbewahrung von Aufgaben begrenzt | Standard für nicht bestätigte Nachrichten bis zum Ablauf, gemindert durch DLQ |
Nächste Schritte
- Warteschlangenrouting, ‑limits und ‑wiederholungen konfigurieren
- Warteschlangen und Aufgaben verwalten
- Wiederholungsparameter für eine Aufgabe festlegen
- Aufgaben deduplizieren