Scegli un tipo di sottoscrizione

Questo documento ti aiuta a scegliere il tipo di abbonamento Pub/Sub appropriato alle esigenze della tua attività.

Prima di iniziare

Tabella di confronto delle sottoscrizioni Pub/Sub

La tabella seguente offre alcune indicazioni per scegliere il meccanismo di caricamento appropriato per la tua applicazione:

Funzionalità supportate dalle sottoscrizioni Pub/Sub
Caso d'uso Abbonamento pull
  • Volume elevato di messaggi (GB al secondo).
  • L'efficienza e il throughput dell'elaborazione dei messaggi sono fondamentali.
  • Ambienti in cui non è possibile configurare un endpoint HTTPS pubblico con un certificato SSL non autofirmato.
Abbonamento push
  • Più argomenti che devono essere elaborati dallo stesso webhook.
  • Abbonati alle funzioni App Engine Standard e Cloud Run.
  • Ambienti in cui non è possibile configurare le dipendenze di Google Cloud (ad esempio le credenziali e la libreria client).
Esporta abbonamento
  • Un volume elevato di messaggi che può essere scalato fino a diversi milioni di messaggi al secondo.
  • I messaggi vengono inviati direttamente a una risorsa Google Cloud senza alcuna elaborazione aggiuntiva.
Endpoint Sottoscrizione pull

Qualsiasi dispositivo su internet con credenziali autorizzate è in grado di chiamare l'API Pub/Sub.

Abbonamento 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 di più sottoscrizioni vengano inviati a un singolo endpoint.
Esporta abbonamento
  • Un set di dati e una tabella BigQuery per un abbonamento BigQuery.
  • Un bucket Cloud Storage per un abbonamento Cloud Storage.
Bilanciamento del carico Abbonamento pull
  • Più sottoscrittori possono effettuare chiamate pull alla stessa iscrizione "condivisa".
  • Ogni sottoscrittore riceve un sottoinsieme di messaggi.
Abbonamento push

Gli endpoint push possono essere bilanciatori del carico.

Esportare l'abbonamento

Il servizio Pub/Sub bilancia automaticamente il carico.

Configurazione Sottoscrizione pull

Non è necessaria alcuna configurazione.

Abbonamento push
  • Non è necessaria alcuna configurazione per le app App Engine nello stesso progetto dell'abbonato.
  • La verifica degli endpoint push non è obbligatoria nella console Google Cloud.
  • Gli endpoint devono essere raggiungibili utilizzando i nomi DNS e avere i certificati SSL installati.
Esporta abbonamento
  • Per l'abbonamento BigQuery devono essere presenti un set di dati e una tabella BigQuery configurati con le autorizzazioni appropriate.
  • Per l'abbonamento Cloud Storage deve esistere un bucket Cloud Storage configurato con le autorizzazioni appropriate.
Controllo del flusso Sottoscrizione pull

Il client sottoscrittore controlla la frequenza di invio. L'abbonato può modificare dinamicamente la scadenza per l'acknowledgment, consentendo all'elaborazione dei messaggi di essere arbitrariamente lunga.

Abbonamento push

Il server Pub/Sub implementa automaticamente il controllo del flusso. Non è necessario gestire il flusso di messaggi lato client. Tuttavia, è possibile indicare che il client non è in grado di gestire il carico di messaggi corrente passando un errore HTTP.

Esportare l'abbonamento

Il server Pub/Sub implementa automaticamente il controllo del flusso per ottimizzare la scrittura dei messaggi in una risorsa Google Cloud.

Efficienza e velocità in uscita Sottoscrizione pull

Consente di ottenere una velocità effettiva elevata a una bassa larghezza di banda e CPU grazie al caricamento collettivo, ai riconoscimenti e al consumo in parallelo massivo. Potrebbe non essere efficiente se viene utilizzato un polling aggressivo per minimizzare il tempo di recapito dei messaggi.

Abbonamento push

Invia un messaggio per richiesta e limita il numero massimo di messaggi in sospeso.

Esportare l'abbonamento

La scalabilità viene gestita dinamicamente dai server Pub/Sub.

Quando utilizzare un abbonamento per l'esportazione

Senza un abbonamento per l'esportazione, devi disporre di un abbonamento pull o push e di un sottoscrittore (ad esempio Dataflow) per leggere i messaggi e scriverli in una risorsa Google Cloud. Il sovraccarico dell'esecuzione di un job Dataflow non è necessario quando i messaggi non richiedono un'elaborazione aggiuntiva prima di essere archiviati.

L'esportazione delle iscrizioni presenta i seguenti vantaggi:

  • Deployment semplice. Puoi configurare una sottoscrizione di esportazione tramite un singolo flusso di lavoro nella console, in Google Cloud CLI, nella libreria client o nell'API Pub/Sub.

  • Costi ridotti. Riduce il costo 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 iscrizioni di esportazione 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 raggruppamento dei file configurabili in base alle dimensioni del file e al tempo trascorso, che non sono configurabili nel modello di Dataflow di base per la scrittura da Pub/Sub a Cloud Storage.

Tuttavia, una pipeline Dataflow è ancora consigliata per i sistemi Pub/Sub in cui è richiesta una certa trasformazione dei dati prima che vengano archiviati in una risorsa Google Cloud, ad esempio una tabella BigQuery o un bucket Cloud Storage.

Per scoprire come trasmettere i dati da Pub/Sub a BigQuery con trasformazione utilizzando Dataflow, consulta Eseguire lo streaming da Pub/Sub a BigQuery.

Per scoprire come trasmettere in streaming i dati da Pub/Sub a Cloud Storage con trasformazione utilizzando Dataflow, consulta Trasmetti flussi di messaggi da Pub/Sub utilizzando Dataflow.

Passaggi successivi

Comprendi il flusso di lavoro per ogni tipo di abbonamento: