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 | Sì | Sì |
| Garanzia di consegna almeno una volta | Sì | Sì |
| Tentativi configurabili | Sì | Sì |
| Deduplicazione della creazione di attività/messaggi | Sì | No |
| Consegna pianificata | Sì | 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 | Sì | I client pull subscriber possono implementare il controllo del flusso |
| Recupero tramite API | No | Sì |
| Inserimento batch | Sì | Sì |
| Più gestori/sottoscrittori per messaggio | No | Sì |
| 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'uso | Garantire l'esecuzione finale di un'attività specifica | Garantire il recapito dei messaggi agli iscritti disaccoppiati |
| Controllo principale | Configurazione dei tentativi a livello di coda e di attività | Criterio di ripetizione e DLQ a livello di abbonamento |
| Interruzione dei tentativi | Tentativi massimi, durata massima dei nuovi tentativi | Riconoscimento del messaggio, scadenza del messaggio o trasferimento DLQ |
| Numero massimo di tentativi | Configurabile in modo esplicito | Indirettamente tramite il numero massimo di tentativi di consegna della DLQ |
| Regolazione del backoff | Backoff minimo/massimo, numero massimo di raddoppi | Backoff minimo/massimo per la norma di backoff esponenziale |
| Tentativi indefiniti | Possibile 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
- Configurare il routing, i limiti e i tentativi di coda
- Gestire code e attività
- Impostare i parametri di ripetizione per un'attività
- Deduplicazione di attività