Panoramica dell'abbonamento

Per ricevere i messaggi pubblicati in un argomento, devi creare una sottoscrizione a quell'argomento. Solo i messaggi pubblicati nell'argomento dopo la creazione della sottoscrizione sono disponibili per i client del sottoscrittore. Il client abbonato riceve ed elabora i messaggi pubblicati nell'argomento. Un argomento può avere più abbonamenti, ma un determinato abbonamento appartiene a un solo argomento.

La funzionalità di conservazione degli argomenti consente a una sottoscrizione associata a un argomento di eseguire la ricerca indietro nel tempo e riprodurre i messaggi pubblicati in precedenza. Per ulteriori informazioni sulla funzionalità, consulta l'argomento Riproduzione ed eliminazione definitiva dei messaggi.

Flusso di lavoro dell'abbonamento

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

  2. Se un messaggio viene inviato per la consegna e un sottoscrittore deve ancora accettarlo, il messaggio è considerato in sospeso.

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

  4. Il sottoscrittore ha a disposizione un periodo di tempo limitato e configurabile, chiamato ackDeadline, per confermare il messaggio in sospeso. Una volta trascorsa la scadenza, il messaggio non viene più considerato in sospeso e Pub/Sub tenta di recapitarlo.

Tipi di abbonamenti

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

  • Le sottoscrizioni pull utilizzano un client abbonato per richiedere messaggi al server Pub/Sub.

  • Il push delle sottoscrizioni utilizza il server Pub/Sub per avviare le richieste di recapito dei messaggi all'applicazione del tuo sottoscrittore.

  • L'opzione Esporta sottoscrizioni consente di esportare i messaggi direttamente in una risorsa Google Cloud. Questi abbonamenti includono:

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

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

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

Proprietà degli abbonamenti predefinite

Per impostazione predefinita, Pub/Sub offre la consegna "atleast-once" senza garanzia di ordini per tutti i tipi di abbonamento. In alternativa, se i messaggi hanno la stessa chiave di ordinamento e si trovano nella stessa regione, puoi abilitare l'ordinamento dei messaggi. Dopo che hai impostato la proprietà di ordinamento dei messaggi, il servizio Pub/Sub recapita i messaggi con la stessa chiave di ordinamento e nell'ordine in cui il servizio Pub/Sub riceve i messaggi.

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

In generale, Pub/Sub recapita ogni messaggio una volta e nell'ordine in cui è stato pubblicato. Tuttavia, a volte i messaggi possono essere recapitati in ordine errato o più di una volta. Pub/Sub potrebbe consegnare di nuovo un messaggio anche dopo che una richiesta di conferma del messaggio è stata restituita. Questa riconsegna può essere causata da problemi quali riavvii lato server o problemi lato client. Di conseguenza, anche se raramente, è possibile recapitare un altro messaggio in qualsiasi momento.

Per gestire la consegna "più di una volta" è necessario che il sottoscrittore sia idempotente durante l'elaborazione dei messaggi.

Scadenza dell'abbonamento

Per impostazione predefinita, gli abbonamenti scadono dopo 31 giorni di inattività degli abbonati o se non sono stati apportati aggiornamenti. Esempi di attività dell'abbonato 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 si riavvia. Utilizzando i criteri di scadenza degli abbonamenti, puoi configurare la durata di inattività o rendere permanente l'abbonamento indipendentemente dall'attività. Puoi anche eliminare un abbonamento manualmente.

Anche se puoi creare un nuovo abbonamento con lo stesso nome di quello eliminato, il nuovo abbonamento non ha alcuna relazione con quello precedente. Anche se la sottoscrizione eliminata conteneva molti messaggi non confermati, una nuova sottoscrizione creata con lo stesso nome non avrà un backlog (nessun messaggio in attesa di consegna) al momento della creazione.

Passaggi successivi