Scelta di Pub/Sub o Cloud Tasks

Sia Cloud Tasks che 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 è nella nozione di chiamata implicita ed esplicita.

Pub/Sub mira a disaccoppiare i publisher di eventi e gli abbonati a questi eventi. I publisher non devono sapere nulla sui propri iscritti. Pertanto, Pub/Sub non offre ai publisher alcun controllo sulla consegna dei messaggi, tranne che per la garanzia della consegna. In questo modo, Pub/Sub supporta l'invocazione implicita: un publisher causa implicitamente l'esecuzione dei sottoscrittori pubblicando un evento.

Al contrario, Cloud Tasks è pensato per l'invocazione esplicita, in cui il publisher mantiene il pieno controllo dell'esecuzione. In particolare, un publisher specifica un endpoint in cui deve essere recapitato ogni messaggio.

In generale, Cloud Tasks è adatto per i casi d'uso in cui un produttore di attività deve posticipare o controllare i tempi di esecuzione di un webhook o di una chiamata di procedura remota specifici. Pub/Sub è ottimale per pattern di importazione e distribuzione dei dati sugli eventi più generali 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
Tentativi ripetuti configurabili
Deduplicazione della creazione di attività No
Consegna pianificata No
Ordinato con consegna No. L'ordine di attività in coda viene conservato secondo il criterio del "best effort". Sì con chiavi di ordinamento
Controlli delle tariffe espliciti I client sottoscrittori pull possono implementare il controllo del flusso
Estrazione tramite API No
Inserimento batch No
Più gestori/sottoscrittori per messaggio No
Conservazione di attività/messaggi 30 giorni Fino a 31 giorni
Dimensioni massime dell'attività/del messaggio 1 MB 10 MB
Percentuale di pubblicazione massima 500 QPS/coda Nessun limite superiore
Disponibilità geografica Regionale Globale
Durata massima di elaborazione dell'handler/del sottoscrittore push 30 minuti (HTTP)
10 minuti (scalabilità automatica di App Engine Standard)
24 ore (scalabilità manuale o di base di App Engine Standard)
60 minuti (App Engine Flexible)
10 minuti per le operazioni push
Numero di code/iscrizioni per progetto 1000/progetto, con un numero maggiore disponibile tramite richiesta di aumento della quota 10.000/progetto