Estendere il tempo di ack con la gestione del lease

Quando un messaggio viene recapitato a un sottoscrittore pull, quest'ultimo deve elaborarlo e inviare un ACK entro la scadenza di conferma. In caso contrario, il sottoscrittore deve estendere la scadenza con una chiamata per modificarla.

Le librerie client di alto livello di Pub/Sub forniscono la gestione del lease come funzionalità che estende automaticamente la scadenzadi un messaggio che non è ancora stato confermato. Per impostazione predefinita, le librerie client possono estendere la scadenza a un'ora inviando periodicamente modifyAckDeadline. Le librerie client di alto livello per Python, Go e Java utilizzano il 99° percentile del ritardo di conferma per determinare la durata di ogni estensione.

La gestione del lease consente di avere un controllo più granulare sulla scadenza di conferma dei messaggi rispetto alla configurazione della proprietà a livello di sottoscrizione. Se utilizzi solo la scadenza di conferma a livello di sottoscrizione, devi bilanciare il compromesso tra un valore basso e un valore alto. Un valore basso aumenta la probabilità di duplicati e un valore alto ritarda la nuova consegna dei messaggi non riusciti. Determinare il valore corretto può essere difficile, soprattutto quando il tempo di elaborazione previsto per i diversi messaggi varia notevolmente.

Per ulteriori informazioni sulle proprietà di una sottoscrizione, inclusa la scadenza di conferma, consulta Proprietà della sottoscrizione.

Configurazione della gestione del lease

Puoi configurare le seguenti proprietà nelle librerie client di alto livello per controllare la gestione del lease.

  • Periodo massimo di estensione della conferma. Il periodo di tempo massimo per il quale la libreria client può estendere la scadenza di conferma di un messaggio utilizzando la richiesta modify acknowledgment deadline. Questa proprietà consente di determinare per quanto tempo vuoi che i client sottoscrittori elaborino i messaggi.

  • Durata massima per ogni estensione della conferma. Il periodo di tempo massimo di cui estendere la scadenza di conferma per ciascuna delle richieste modify acknowledgment deadline. Questa proprietà consente di definire il tempo impiegato da Pub/Sub per consegnare nuovamente un messaggio. La nuova consegna si verifica quando il primo sottoscrittore che elabora il messaggio si arresta in modo anomalo o diventa non integro e non è più in grado di inviare la richiesta modify acknowledgment deadline.