Scegli un tipo di sottoscrizione

Questo documento ti aiuta a scegliere il tipo di abbonamento Pub/Sub adatto alle tue esigenze aziendali.

Prima di iniziare

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
  • Grande volume di messaggi (GB al secondo).
  • L'efficienza e la velocità effettiva dell'elaborazione dei messaggi sono fondamentali.
  • Ambienti in cui non è possibile configurare un endpoint HTTPS pubblico con un certificato SSL non autofirmato.
Push della sottoscrizione
  • Più argomenti che devono essere elaborati dallo stesso webhook.
  • agli abbonati a standard App Engine e Cloud Functions.
  • Ambienti in cui non è possibile configurare le dipendenze di Google Cloud (come le credenziali e la libreria client).
Esporta sottoscrizione
  • Grande volume di messaggi in grado di fare lo scale up fino a diversi milioni di messaggi al secondo.
  • I messaggi vengono inviati direttamente a una risorsa Google Cloud senza alcuna elaborazione aggiuntiva.
Endpoint Abbonamento pull

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

Push della sottoscrizione
  • Un server HTTPS con certificato non autofirmato accessibile sul web pubblico.
  • L'endpoint ricevente potrebbe essere disaccoppiato dalla sottoscrizione Pub/Sub, in modo che i messaggi di più sottoscrizioni vengano inviati a un singolo endpoint.
Esporta sottoscrizione
  • Un set di dati e una tabella BigQuery per una sottoscrizione BigQuery.
  • Un bucket Cloud Storage per un abbonamento Cloud Storage.
Bilanciamento del carico Sottoscrizione pull
  • Più abbonati possono effettuare chiamate pull per lo stesso abbonamento "condiviso".
  • Ogni sottoscrittore riceve un sottoinsieme di messaggi.
Push dell'abbonamento

Gli endpoint push possono essere bilanciatori del carico.

Esporta iscrizione

Il servizio Pub/Sub bilancia automaticamente il carico.

Configurazione Abbonamento pull

Non è necessaria alcuna configurazione.

Push della sottoscrizione
  • Non è necessaria alcuna configurazione per le app App Engine nello stesso progetto del sottoscrittore.
  • La verifica degli endpoint push non è obbligatoria nella console Google Cloud.
  • Gli endpoint devono essere raggiungibili tramite nomi DNS e avere certificati SSL installati.
Esporta sottoscrizione
  • Per la sottoscrizione BigQuery devono esistere un set di dati e una tabella BigQuery, configurati con le autorizzazioni appropriate.
  • Per la sottoscrizione Cloud Storage deve esistere un bucket Cloud Storage, configurato con le autorizzazioni appropriate.
Controllo del flusso Abbonamento pull

Il client abbonato controlla la frequenza di consegna. Il sottoscrittore può modificare in modo dinamico la scadenza di conferma, consentendo all'elaborazione del messaggio di essere arbitrariamente lunga.

Push dell'abbonamento

Il server Pub/Sub implementa automaticamente il controllo del flusso. Non è necessario gestire il flusso dei messaggi sul lato client. Tuttavia, è possibile indicare che il client non è in grado di gestire il caricamento attuale del messaggio restituendo un errore HTTP.

Esporta iscrizione

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

Efficienza e velocità effettiva Abbonamento pull

Raggiungi un'elevata velocità effettiva con CPU e larghezza di banda ridotte, consentendo la distribuzione in batch, i riconoscimenti e il consumo in massa massiccia. Potrebbe non essere efficace se si utilizza un polling aggressivo per ridurre al minimo i tempi di consegna dei messaggi.

Push dell'abbonamento

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

Esporta iscrizione

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

Quando utilizzare una sottoscrizione per l'esportazione

Senza una sottoscrizione di esportazione, hai bisogno di una sottoscrizione pull o push e di un sottoscrittore (ad esempio Dataflow) per leggere i messaggi e scriverli in una risorsa Google Cloud. L'overhead associato all'esecuzione di un job Dataflow non è necessario quando i messaggi non richiedono un'ulteriore elaborazione prima di essere archiviati.

Le iscrizioni all'esportazione offrono i seguenti vantaggi:

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

  • Costi ridotti. Riduce i costi aggiuntivi e la latenza di pipeline Pub/Sub simili che includono job Dataflow. Questa ottimizzazione dei costi è utile per i sistemi di messaggistica che non richiedono un'ulteriore elaborazione prima dell'archiviazione.

  • Monitoraggio minimo. Le sottoscrizioni 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 configurabili di raggruppamento dei file in base alle dimensioni del 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 i dati vengano archiviati in una risorsa Google Cloud, come una tabella BigQuery o un bucket Cloud Storage.

Per scoprire come trasmettere flussi di dati da Pub/Sub a BigQuery con la trasformazione utilizzando Dataflow, consulta Flusso di dati da Pub/Sub a BigQuery.

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

Passaggi successivi

Comprendi il flusso di lavoro per ogni tipo di abbonamento: