Sia Cloud Tasks sia Pub/Sub possono essere utilizzati per implementare il passaggio di messaggi e l'integrazione asincrona. Sebbene siano concettualmente simili, ognuno è progettato per un insieme diverso di casi d'uso. Questa pagina ti aiuta a scegliere il prodotto giusto per il tuo caso d'uso.
Differenze principali
La differenza principale tra Pub/Sub e Cloud Tasks risiede nella nozione di invocazione implicita ed esplicita.
Pub/Sub mira a disaccoppiare i publisher di eventi e i sottoscrittori di questi eventi. I publisher non devono sapere nulla dei loro sottoscrittori. Pertanto, Pub/Sub non offre ai publisher alcun controllo sulla consegna dei messaggi, ad eccezione della garanzia di consegna. In questo modo, Pub/Sub supporta l'invocazione implicita: un publisher fa sì che i sottoscrittori eseguano implicitamente la pubblicazione di un evento.
Al contrario, Cloud Tasks è destinato all'invocazione esplicita , in cui il publisher mantiene il controllo completo dell'esecuzione. In particolare, un publisher specifica un endpoint in cui ogni messaggio deve essere consegnato.
In generale, Cloud Tasks è appropriato per i casi d'uso in cui un produttore di attività deve rinviare o controllare la tempistica di esecuzione di un webhook o di una chiamata di procedura remota specifica. Pub/Sub è ottimale per pattern di importazione dati e distribuzione di dati sugli eventi più generali, in cui è possibile sacrificare un certo grado di controllo sull'esecuzione.
Confronto dettagliato delle funzionalità
| Funzionalità | Cloud Tasks | Pub/Sub |
|---|---|---|
| Push tramite webhook | Sì | Sì |
| Garanzia di consegna "at-least-once" | Sì | Sì |
| Tentativi configurabili | Sì | Sì |
| Deduplicazione della creazione di attività/messaggi | Sì | No |
| Consegna pianificata | Sì | No |
| Consegna ordinata | No, l'ordine delle attività in coda viene mantenuto al meglio delle possibilità | Sì, con chiavi di ordinamento |
| Controlli espliciti della frequenza | Sì | I client di sottoscrizione pull possono implementare il controllo del flusso |
| Pull tramite API | No | Sì |
| Inserimento batch | Sì | Sì |
| Più gestori/sottoscrittori per messaggio | No | Sì |
| Conservazione di attività/messaggi | 31 giorni | Fino a 31 giorni |
| Dimensione massima di attività/messaggi | 1MB | 10MB |
| Velocità di consegna massima | 500 QPS/coda | Nessun limite massimo, soggetto alle quote di throughput regionali |
| Disponibilità geografica | Regionale | Globale |
| Durata massima dell'elaborazione del gestore/sottoscrittore push | 30 minuti (HTTP) 10 minuti (scalabilità automatica standard di App Engine) 24 ore (scalabilità manuale o di base standard di App Engine) 60 minuti (App Engine flessibile) |
10 minuti per le operazioni push |
| Numero di code/sottoscrizioni | 1000 per progetto per regione, altre disponibili tramite richiesta di aumento della quota | 10.000 per progetto |