Scelta di Pub/Sub o Cloud Tasks

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 è la nozione di richiamo implicito ed esplicito.

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 il richiamo implicito: un publisher fa sì che i sottoscrittori eseguano implicitamente la pubblicazione di un evento.

Al contrario, Cloud Tasks è destinato al richiamo esplicito , in cui il publisher mantiene il pieno controllo 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
Distribuzione pianificata Sì No
Distribuzione 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 sottoscrittori 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à massima di distribuzione 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