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 | Sì | Sì |
Garanzia di consegna almeno una volta | Sì | Sì |
Tentativi ripetuti configurabili | Sì | Sì |
Deduplicazione della creazione di attività | Sì | No |
Consegna pianificata | Sì | 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 | Sì | I client sottoscrittori pull possono implementare il controllo del flusso |
Estrazione tramite API | No | Sì |
Inserimento batch | No | Sì |
Più gestori/sottoscrittori per messaggio | No | Sì |
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 |