Scegliere Cloud Tasks o Pub/Sub

Cloud Tasks e Pub/Sub possono essere utilizzati per implementare il passaggio di messaggi e l'integrazione asincrona, ma, sebbene funzionino in modo simile, non sono identici. Questa guida ti aiuta a scegliere il prodotto giusto per il tuo caso d'uso.

Differenze principali

Pub/Sub e Cloud Tasks differiscono principalmente per il tipo di chiamata, implicita o esplicita.

Pub/Sub disaccoppia i publisher di eventi dai loro subscriber. I publisher non devono sapere nulla dei propri abbonati. Di conseguenza, Pub/Sub non offre alcun controllo sulla consegna dei messaggi oltre a garantirla. Ciò supporta l'invocazione implicita: un publisher attiva l'esecuzione del sottoscrittore semplicemente pubblicando un evento.

Al contrario, Cloud Tasks mira all'invocazione esplicita. L'editore mantiene il pieno controllo dell'esecuzione. In particolare, un publisher specifica un endpoint in cui deve essere recapitato ogni messaggio.

Inoltre, Cloud Tasks fornisce strumenti per la gestione di code e attività non disponibili per i publisher Pub/Sub, tra cui:

  • Pianificazione della consegna specifica
  • Controlli della percentuale di pubblicazione
  • Tentativi configurabili precisi
  • Accesso e gestione delle singole attività in una coda
  • Deduplicazione della creazione di attività

Confronto dettagliato delle funzionalità

Funzionalità Cloud Tasks Pub/Sub
Push tramite webhook
Garanzia di consegna almeno una volta
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 pull subscriber possono implementare il controllo del flusso
Recupero tramite API No
Inserimento batch
Più gestori/sottoscrittori per messaggio No
Conservazione delle attività/dei messaggi 31 giorni Fino a 31 giorni
Dimensione massima dell'attività/del messaggio 1 MB 10 MB
Tasso di pubblicazione massimo 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 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/abbonamenti 1000 per progetto per regione, altre disponibili tramite richiesta di aumento della quota 10.000 per progetto

Differenze nei tentativi ripetuti configurabili

Cloud Tasks offre un controllo preciso dei tentativi di ripetizione delle attività, inclusi limiti rigidi per tentativi e durata. Pub/Sub si concentra sulla distribuzione affidabile, utilizzando il backoff esponenziale e le code dei messaggi non recapitabili (DLQ) per gestire i tentativi di ripetizione per i messaggi non riconosciuti.

FunzionalitàCloud Tasks Pub/Sub
Focus sul caso d'usoGarantire l'esecuzione finale di un'attività specifica Garantire il recapito dei messaggi agli iscritti disaccoppiati
Controllo principaleConfigurazione dei tentativi a livello di coda e di attività Criterio di ripetizione e DLQ a livello di abbonamento
Interruzione dei tentativiTentativi massimi, durata massima dei nuovi tentativi Riconoscimento del messaggio, scadenza del messaggio o trasferimento DLQ
Numero massimo di tentativiConfigurabile in modo esplicito Indirettamente tramite il numero massimo di tentativi di consegna della DLQ
Regolazione del backoffBackoff minimo/massimo, numero massimo di raddoppi Backoff minimo/massimo per la norma di backoff esponenziale
Tentativi indefinitiPossibile se configurato, ma limitato dal limite massimo di conservazione delle attività Valore predefinito per i messaggi non confermati fino alla scadenza, mitigato dalla DLQ

Passaggi successivi