Scegli un tipo di sottoscrizione

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
  • Volume elevato di messaggi (GB al secondo).
  • L'efficienza e il throughput dell'elaborazione dei messaggi sono fondamentali.
  • Ambienti in cui non è fattibile configurare un endpoint HTTPS pubblico con un certificato SSL non autofirmato.
Sottoscrizione push
  • Più argomenti che devono essere elaborati dallo stesso webhook.
  • Abbonati App Engine Standard o Cloud Run Functions.
  • Ambienti in cui non è fattibile configurare le dipendenze di Google Cloud come le credenziali e la libreria client.
Esportazione dell'abbonamento
  • Grandi volumi di messaggi che possono essere scalati fino a più milioni di messaggi al secondo.
  • Invio di messaggi direttamente a una Google Cloud risorsa senza ulteriori elaborazioni.
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
  • Non è necessaria alcuna configurazione per le app App Engine nello stesso progetto del sottoscrittore.
  • La verifica degli endpoint push non è richiesta nella console Google Cloud .
  • Gli endpoint devono essere raggiungibili utilizzando i nomi DNS e devono avere installati certificati SSL.
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: