Panoramica dell'abbonamento

Puoi ricevere i messaggi pubblicati in un argomento creando una sottoscrizione. Solo i messaggi pubblicati nell'argomento dopo la creazione della sottoscrizione sono disponibili per i client sottoscrittori. Il client sottoscrittore riceve ed elabora i messaggi pubblicati nell'argomento. Un argomento può avere più sottoscrizioni, ma una determinata sottoscrizione appartiene a un singolo argomento.

La funzionalità di conservazione degli argomenti consente a una sottoscrizione collegata a un argomento di cercare a ritroso e riprodurre i messaggi pubblicati in precedenza. Puoi scoprire di più sulla funzionalità nell'argomento Riproduzione ed eliminazione dei messaggi.

Flusso di lavoro della sottoscrizione

  1. Dopo che un messaggio viene inviato a un sottoscrittore, quest'ultimo deve confermarlo.

  2. Se un messaggio viene inviato per la consegna e un sottoscrittore non lo ha ancora confermato, il messaggio viene definito in sospeso.

  3. Pub/Sub tenta ripetutamente di consegnare qualsiasi messaggio non ancora confermato. Tuttavia, Pub/Sub cerca di non consegnare un messaggio in sospeso a nessun altro sottoscrittore della stessa sottoscrizione.

  4. Il sottoscrittore ha a disposizione un periodo di tempo configurabile e limitato, noto come ackDeadline, per confermare il messaggio in sospeso. Una volta scaduto il termine, il messaggio non viene più considerato in sospeso e Pub/Sub tenta di consegnarlo di nuovo.

Tipi di sottoscrizioni

Quando crei una sottoscrizione, devi specificare il tipo di consegna dei messaggi. Pub/Sub offre i seguenti tipi di sottoscrizioni:

  • Le sottoscrizioni pull utilizzano un client sottoscrittore per richiedere i messaggi dal server Pub/Sub.

  • Le sottoscrizioni push utilizzano il server Pub/Sub per avviare le richieste all'applicazione del sottoscrittore per la consegna dei messaggi.

  • Le sottoscrizioni di esportazione esportano i messaggi direttamente in una Cloud de Confiance by S3NS risorsa. Queste sottoscrizioni includono:

    • Le sottoscrizioni BigQuery esportano i dati in una tabella BigQuery.

    • Le sottoscrizioni Bigtable (anteprima) esportano i dati in una tabella Bigtable.

    • Le sottoscrizioni Cloud Storage esportano i dati in un bucket Cloud Storage.

Per scegliere la sottoscrizione corretta per le tue esigenze aziendali, consulta Scegliere un tipo di sottoscrizione. Puoi aggiornare il tipo di consegna dei messaggi per una sottoscrizione in qualsiasi momento dopo la sua creazione.

Proprietà predefinite della sottoscrizione

Per impostazione predefinita, Pub/Sub offre la consegna "at-least-once" senza garanzie di ordinamento su tutti i tipi di sottoscrizioni. In alternativa, se i messaggi hanno la stessa chiave di ordinamento e si trovano nella stessa regione, puoi abilitare l'ordinamento dei messaggi. Dopo aver impostato la proprietà di ordinamento dei messaggi, il servizio Pub/Sub consegna i messaggi con la stessa chiave di ordinamento e nell'ordine in cui li riceve.

Pub/Sub supporta anche la consegna "exactly-once".

In generale, Pub/Sub consegna ogni messaggio una sola volta e nell'ordine in cui è stato pubblicato. Tuttavia, a volte i messaggi potrebbero essere consegnati in modo non ordinato o più di una volta. Pub/Sub potrebbe consegnare di nuovo un messaggio anche dopo che una richiesta di conferma per il messaggio è stata completata correttamente. Questa nuova consegna può essere causata da problemi come riavvii lato server o problemi lato client. Pertanto, sebbene sia raro, qualsiasi messaggio può essere consegnato di nuovo in qualsiasi momento.

Per gestire la consegna più di una volta, il sottoscrittore deve essere idempotente durante l'elaborazione dei messaggi.

Scadenza della sottoscrizione

Per impostazione predefinita, le sottoscrizioni scadono dopo 31 giorni di inattività del sottoscrittore o se non vengono apportati aggiornamenti alla sottoscrizione. Esempi di attività del sottoscrittore includono connessioni aperte, pull attivi o push riusciti. Se Pub/Sub rileva l'attività del sottoscrittore o un aggiornamento delle proprietà della sottoscrizione, l'orologio di eliminazione della sottoscrizione viene riavviato. Utilizzando policy di scadenza della sottoscrizione, puoi configurare la durata dell'inattività o rendere la sottoscrizione persistente indipendentemente dall'attività. Puoi anche eliminare manualmente una sottoscrizione.

Anche se puoi creare una nuova sottoscrizione con lo stesso nome di una sottoscrizione eliminata, la nuova sottoscrizione non ha alcuna relazione con quella precedente. Anche se la sottoscrizione eliminata aveva molti messaggi non confermati, una nuova sottoscrizione creata con lo stesso nome non avrebbe alcun backlog (nessun messaggio in attesa di consegna) al momento della creazione.

Passaggi successivi