Estender o tempo de confirmação com o gerenciamento de lease

Quando uma mensagem é entregue a um assinante de extração, ele precisa processar e confirmar (ack) a mensagem dentro do prazo de confirmação. Caso contrário, o assinante precisa estender o prazo com uma chamada para modificar o prazo de confirmação.

As bibliotecas de cliente de alto nível do Pub/Sub oferecem o gerenciamento de concessão como um recurso que estende automaticamente o prazo de uma mensagem que ainda não foi confirmada. Por padrão, as bibliotecas de cliente podem estender o prazo para uma hora emitindo solicitações modifyAckDeadline periódicas. As bibliotecas de cliente de alto nível para Python, Go e Java usam o percentil 99 do atraso de confirmação para determinar a duração de cada extensão.

O gerenciamento de concessão permite que você tenha um controle mais granular sobre o prazo de confirmação das mensagens em comparação com a configuração da propriedade no nível da assinatura. Se você estiver usando apenas o prazo de confirmação no nível da assinatura, terá que equilibrar a compensação entre um valor baixo e um valor alto. Um valor baixo aumenta a probabilidade de duplicados, e um valor alto atrasa a nova entrega de mensagens com falha. Determinar o valor certo pode ser difícil, especialmente quando o tempo de processamento esperado para diferentes mensagens varia muito.

Para mais informações sobre as propriedades de uma assinatura, incluindo o prazo de confirmação, consulte Propriedades da assinatura.

Configuração do gerenciamento de concessão

É possível configurar as seguintes propriedades nas bibliotecas de cliente de alto nível para controlar o gerenciamento de concessão.

  • Período máximo de extensão de confirmação. O período máximo em que a biblioteca de cliente pode estender o prazo de confirmação de uma mensagem usando a solicitação modify acknowledgment deadline. Essa propriedade permite determinar por quanto tempo você quer que os clientes assinantes processem mensagens.