Questo documento ti aiuta a scegliere il tipo di abbonamento Pub/Sub più adatto ai requisiti della tua attività.
Pub/Sub offre i seguenti tipi di sottoscrizioni:
Le sottoscrizioni pull utilizzano un client sottoscrittore per richiedere i messaggi al server Pub/Sub.
Le sottoscrizioni push utilizzano il server Pub/Sub per avviare richieste all'applicazione sottoscrittore per consegnare i messaggi.
Esporta iscrizioni esporta i tuoi messaggi direttamente in una risorsa Google Cloud. Questi abbonamenti includono:
Gli abbonamenti BigQuery esportano i dati in una tabella BigQuery.
Le sottoscrizioni Cloud Storage esportano i dati in un bucket Cloud Storage.
Tabella di confronto delle sottoscrizioni Pub/Sub
La tabella seguente offre alcune indicazioni per la scelta del meccanismo di distribuzione appropriato per la tua applicazione:
| Funzionalità supportate dalle sottoscrizioni Pub/Sub | ||
|---|---|---|
| Caso d'uso | Sottoscrizione pull |
|
| Sottoscrizione push |
|
|
| Esportazione dell'abbonamento |
|
|
| Endpoint | Sottoscrizione pull | Qualsiasi dispositivo su internet con credenziali autorizzate può chiamare l'API Pub/Sub. |
| Sottoscrizione push |
Un server HTTPS con certificato non autofirmato accessibile sul web pubblico. L'endpoint di ricezione potrebbe essere disaccoppiato dalla sottoscrizione Pub/Sub, in modo che i messaggi provenienti da più sottoscrizioni vengano inviati a un singolo endpoint. |
|
| Esportazione dell'abbonamento | La sottoscrizione scrive in una risorsa Google Cloud , ad esempio una tabella BigQuery o un bucket Cloud Storage. | |
| Bilanciamento del carico | Sottoscrizione pull | Più sottoscrittori possono effettuare chiamate pull alla stessa sottoscrizione. Ogni abbonato riceve un sottoinsieme di messaggi. |
| Sottoscrizione push |
Gli endpoint push possono essere bilanciatori del carico. |
|
| Esportazione dell'abbonamento |
Il servizio Pub/Sub bilancia automaticamente il carico. |
|
| Configurazione | Sottoscrizione pull |
Non è necessaria alcuna configurazione. |
| Sottoscrizione push |
|
|
| Esportazione dell'abbonamento | La Google Cloud risorsa a cui viene esportato l'abbonamento deve esistere ed essere configurata con le autorizzazioni appropriate. | |
| Controllo del flusso | Sottoscrizione pull | Il client sottoscrittore controlla la velocità di pubblicazione. L'abbonato può modificare dinamicamente la scadenza dell'acknowledgement, consentendo l'elaborazione dei messaggi per un periodo di tempo arbitrariamente lungo. |
| Sottoscrizione push | Il server Pub/Sub implementa automaticamente il controllo del flusso. I clienti non devono gestire il flusso di messaggi. Tuttavia, è possibile indicare che il client non è in grado di gestire il carico di messaggi corrente restituendo un errore HTTP. | |
| Esportazione dell'abbonamento | Pub/Sub implementa automaticamente il controllo del flusso per ottimizzare la scrittura dei messaggi nella risorsa di destinazione. Google Cloud | |
| Efficienza e throughput | Sottoscrizione pull | Consente di ottenere un throughput elevato con CPU e larghezza di banda ridotte consentendo la distribuzione, gli ACK e il consumo in batch in modo massiccio e parallelo. Potrebbe essere inefficiente se viene utilizzato il polling frequente per ridurre al minimo il tempo di recapito dei messaggi. |
| Sottoscrizione push | Invia un messaggio per richiesta e limita il numero massimo di messaggi in sospeso. | |
| Esportazione dell'abbonamento | Pub/Sub gestisce dinamicamente la scalabilità. | |
Quando utilizzare un abbonamento all'esportazione
Senza un abbonamento all'esportazione, hai bisogno di un abbonamento pull o push e di un abbonato (ad esempio Dataflow) per leggere i messaggi e scriverli in una risorsa Google Cloud . Il sovraccarico di esecuzione di un job Dataflow non è necessario quando i messaggi non richiedono un'elaborazione aggiuntiva prima di essere archiviati.
Le esportazioni degli abbonamenti presentano i seguenti vantaggi:
Deployment semplice. Puoi configurare una sottoscrizione di esportazione tramite un singolo workflow nella console, nella CLI, nella libreria client o nell'API Pub/Sub. Google Cloud
Costi ridotti. Riduce i costi e la latenza aggiuntivi di pipeline Pub/Sub simili che includono job Dataflow. Questa ottimizzazione dei costi è utile per i sistemi di messaggistica che non richiedono un'elaborazione aggiuntiva prima dell'archiviazione.
Monitoraggio minimo. Le esportazioni di abbonamenti fanno parte del servizio Pub/Sub multi-tenant e non richiedono l'esecuzione di job di monitoraggio separati.
Flessibilità. Una sottoscrizione BigQuery può utilizzare lo schema dell'argomento a cui è collegata, che non è disponibile con il modello Dataflow di base per la scrittura da Pub/Sub a BigQuery. Analogamente, un abbonamento a Cloud Storage offre opzioni di batching dei file configurabili in base alle dimensioni dei file e al tempo trascorso, che non sono configurabili nel modello Dataflow di base per la scrittura da Pub/Sub a Cloud Storage.
Tuttavia, una pipeline Dataflow è comunque consigliata per i sistemi Pub/Sub in cui è necessaria una trasformazione dei dati prima che vengano archiviati in una risorsaGoogle Cloud come una tabella BigQuery o un bucket Cloud Storage.
Per scoprire come trasmettere dati in streaming da Pub/Sub a BigQuery con la trasformazione utilizzando Dataflow, consulta Trasmettere dati in streaming da Pub/Sub a BigQuery.
Per scoprire come trasmettere dati in streaming da Pub/Sub a Cloud Storage con trasformazione utilizzando Dataflow, consulta l'articolo Trasmetti flussi di messaggi da Pub/Sub utilizzando Dataflow.
Passaggi successivi
Comprendi il flusso di lavoro per ogni tipo di abbonamento: