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 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
Garanzia di consegna "at-least-once"
Tentativi configurabili
Deduplicazione della creazione di attività/messaggi No
Consegna pianificata 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 I client di sottoscrizione pull possono implementare il controllo del flusso
Pull tramite API No
Inserimento batch
Più gestori/sottoscrittori per messaggio No
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