Cloud Tasks e Pub/Sub possono essere utilizzati per implementare il passaggio di messaggi e l'integrazione asincrona. Sebbene siano concettualmente simili, ognuna è progettata 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 risiede nel concetto di invocazione implicita ed esplicita.
Pub/Sub mira a disaccoppiare i publisher di eventi e gli abbonati a questi eventi. I publisher non devono sapere nulla dei propri abbonati. Pertanto, Pub/Sub non offre ai publisher alcun controllo sulla consegna dei messaggi, se non la garanzia di 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 è destinato all'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.
Cloud Tasks è adatto ai casi d'uso in cui un produttore di attività deve posticipare o controllare i tempi di esecuzione di un particolare webhook o chiamata di procedura remota. Pub/Sub è ottimale per pattern di inserimento e distribuzione di 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 |
| 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 | No | Sì |
| Più gestori/sottoscrittori per messaggio | No | Sì |
| Conservazione delle attività/dei messaggi | 30 giorni | Fino a 31 giorni |
| Dimensione massima dell'attività/del messaggio | 1 MB | 10 MB |
| Frequenza massima di pubblicazione | 500 QPS/coda | Nessun limite superiore |
| Disponibilità geografica | Regionale | Globale |
| Durata massima dell'elaborazione del gestore/sottoscrittore push | 30 minuti (HTTP) 10 minuti (scalabilità automatica standard di App Engine) 24 ore (scalabilità manuale o di base standard di App Engine) 60 minuti (App Engine Flexible) |
10 minuti per le operazioni di push |
| Numero di code/sottoscrizioni per progetto | 1000 per progetto, altre disponibili tramite richiesta di aumento della quota | 10.000 per progetto |