Scelta di Pub/Sub o Cloud Tasks

Sia Cloud Tasks sia Pub/Sub possono essere utilizzati per implementare la trasmissione dei messaggi e l'integrazione asincrona. Sebbene siano concettualmente simili, ognuna è progettata per set di casi d'uso diversi. 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 è nella nozione di chiamata implicita ed esplicita.

Pub/Sub mira a disaccoppiare i publisher di eventi e i sottoscrittori a questi eventi. I publisher non hanno bisogno di sapere nulla sui loro iscritti. Di conseguenza, Pub/Sub non offre agli editori alcun controllo sulla consegna dei messaggi, fatta eccezione per la garanzia della consegna. In questo modo, Pub/Sub supporta la chiamata implicita: un editore causa implicitamente l'esecuzione dei sottoscrittori pubblicando un evento.

Al contrario, Cloud Tasks è finalizzato alle chiamate esplicite in cui l'editore mantiene il pieno controllo dell'esecuzione. In particolare, un publisher specifica un endpoint in cui deve essere recapitato ogni messaggio.

Nel complesso, le attività Cloud Tasks sono appropriate per i casi d'uso in cui un producer di attività deve rimandare o controllare i tempi di esecuzione di uno specifico webhook o una chiamata di procedura remota. Pub/Sub è ottimale per i pattern di importazione e distribuzione dei dati degli eventi più generici in cui è possibile sacrificare un certo grado di controllo sull'esecuzione.

Confronto dettagliato delle funzionalità

Funzionalità Cloud Tasks Cloud Pub/Sub
Push tramite webhook
Garanzia di consegna almeno una volta
Nuovi tentativi configurabili
Deduplicazione della creazione di attività No
Consegna pianificata No
Consegna a domicilio effettuata No. L'ordine delle attività accodate viene conservato secondo il criterio del "best effort". Sì, con le chiavi di ordinazione
Controlli delle tariffe esplicite I client con sottoscrizione pull possono implementare il controllo del flusso
Esegui il pull tramite API No
Inserimento batch No
Più gestori/iscritti per messaggio No
Conservazione di attività/messaggi 30 giorni Fino a 31 giorni
Dimensione massima dell'attività/del messaggio 1 MB 10 MB
Frequenza di pubblicazione massima 500 qps/coda Nessun limite superiore
Disponibilità geografica Regionale Globale
Durata massima di elaborazione gestore push/sottoscrittore 30 minuti (HTTP)
10 minuti (scalabilità automatica standard di App Engine)
24 ore (scalabilità manuale o di base di App Engine)
60 minuti (scalabilità di App Engine standard)
10 minuti per le operazioni push
Numero di code/iscrizioni per progetto 1000/progetto, altro disponibile tramite richiesta di aumento della quota 10.000/progetto