Esta página descreve as propriedades comuns a todos os tipos de assinatura do Pub/Sub. É possível definir essas propriedades ao criar ou atualizar uma assinatura.
Duração da retenção da mensagem
A opção Duração da retenção da mensagem especifica por quanto tempo o Pub/Sub retém as mensagens após a publicação. Após a duração da retenção da mensagem, o Pub/Sub pode descartar a mensagem, independentemente do estado de confirmação. Para reter mensagens confirmadas durante a duração da retenção da mensagem, consulte Como reproduzir e descartar mensagens.
Confira a seguir os valores da opção Duração da retenção da mensagem:
- Valor padrão = 7 dias
- Valor mínimo = 10 minutos
- Valor máximo = 31 dias
Mensagens não confirmadas podem resultar de assinaturas inativas, necessidades de backup ou processamento lento. Se você puder processar as mensagens em até 24 horas, as cobranças adicionais não serão feitas. É possível evitar novas cobranças gerenciando esses cenários da seguinte maneira:
Assinaturas inativas. Exclua assinaturas inativas para evitar cobranças de retenção de mensagens.
Armazenamento de backup. Se você estiver usando a retenção de assinatura como armazenamento de backup, poderá mudar para outra opção de armazenamento, como a retenção de mensagens de tópico ou a retenção de mensagens confirmadas. A retenção de mensagens de tópico armazena mensagens apenas uma vez no nível do tópico, e elas permanecem disponíveis para todas as assinaturas consumirem quando necessário.
Atrasos no processamento. Adicione mais assinantes (se possível) para processar as mensagens em um dia.
Reter mensagens reconhecidas
Se você especificar a Duração da retenção da mensagem, também poderá especificar se quer reter mensagens confirmadas.
A opção Reter mensagens confirmadas permite reter mensagens confirmadas durante a duração especificada da retenção de mensagens. Essa opção aumenta as taxas de armazenamento de mensagens. Para mais informações, consulte Custos de armazenamento.
Período de expiração
A opção Período de expiração permite estender o período de expiração da assinatura.
As assinaturas sem atividade do assinante ou alterações nas propriedades da assinatura expiram. Se o Pub/Sub detectar atividade do assinante ou se você atualizar alguma das propriedades da assinatura, o relógio de exclusão da assinatura será reiniciado. Exemplos de atividades do assinante incluem conexões abertas, pulls ativos ou pushes bem-sucedidos.
Se você especificar o período de expiração, o valor precisará ser pelo menos tão longo quanto a duração da retenção da mensagem especificada na opção "Duração da retenção da mensagem".
Confira a seguir os valores da opção Período de expiração:
- Valor padrão = 31 dias
- Valor mínimo = 1 dia
Para evitar que uma assinatura expire, defina o período de expiração como never expire.
Prazo de confirmação
A opção Prazo de confirmação especifica o prazo inicial após o qual uma mensagem não confirmada é enviada novamente. É possível estender o prazo de confirmação por mensagem enviando solicitações ModifyAckDeadline subsequentes.
Confira a seguir os valores da opção Prazo de confirmação:
- Valor padrão = 10 segundos
- Valor mínimo = 10 segundos
- Valor máximo = 600 segundos
Em alguns casos, as bibliotecas de cliente do Pub/Sub podem controlar a taxa de entrega e modificar dinamicamente o prazo de confirmação.
Ao fazer isso, a mensagem poderá ser reenviada antes do prazo de confirmação definido. Para modificar esse comportamento, use minDurationPerAckExtension e maxDurationPerAckExtension. Para mais informações sobre como usar esses valores, consulte
Suporte de entrega exatamente uma vez em bibliotecas de cliente.
Transformações de mensagens únicas (SMTs)
As SMTs permitem modificações leves nos atributos e dados das mensagens diretamente no Pub/Sub. Esse recurso permite a limpeza de dados, filtragem ou conversão de formato antes que as mensagens sejam entregues a um cliente assinante.
Para mais informações, consulte Visão geral das SMTs e Criar uma assinatura com SMTs.
Filtro de assinatura
Use a opção Filtro de assinatura para especificar uma string com uma expressão de filtragem. Se uma assinatura tiver um filtro, ela só entregará as mensagens correspondentes ao filtro. O serviço Pub/Sub reconhece automaticamente as mensagens que não correspondem ao filtro.
É possível filtrar mensagens pelos atributos, mas não pelos dados na mensagem.
Se não for especificado, a assinatura não filtrará as mensagens, e os assinantes receberão todas as mensagens.
Os filtros não podem ser alterados ou removidos depois de aplicados.
Quando você recebe mensagens de uma assinatura com um filtro, não há taxas de saída para as mensagens que o Pub/Sub confirma automaticamente. Sujeito a taxas de entrega de mensagens e taxas de armazenamento relacionadas à busca para essas mensagens.
Para mais informações, consulte Filtrar mensagens de uma assinatura.
Ordenação das mensagens
Por padrão, o Pub/Sub não entrega mensagens na ordem em que são publicadas. Se a Ordenação de mensagens estiver ativada para uma assinatura, todas as mensagens enviadas na mesma região, com a mesma chave de ordenação, serão recebidas na ordem em que forem publicadas.
Para que as mensagens sejam recebidas em ordem, o editor precisa definir a chave de ordenação. As mensagens sem uma chave de ordenação podem não ser recebidas em ordem.
Ao usar a entrega ordenada, as confirmações de mensagens posteriores não são processadas até que as confirmações de mensagens anteriores sejam processadas. Para mais informações, consulte Ordenar mensagens.
Tópico de mensagens inativas
Quando uma mensagem não pode ser entregue após um número definido de tentativas de entrega ou um assinante não consegue confirmar a mensagem, o Pub/Sub pode republicar a mensagem em um tópico de mensagens inativas configurado.
Se você definir um tópico de mensagens inativas, também será possível especificar o número máximo de tentativas de entrega. O valor padrão é de 5 tentativas de entrega. É possível definir o número máximo de tentativas para qualquer número entre 5 e 100, inclusive.
Se o tópico de mensagens inativas estiver em um projeto diferente da assinatura, também será necessário especificar o ID do projeto com o tópico de mensagens inativas.
Para mais informações, consulte Tópicos de mensagens inativas.
Política de repetição
Se o prazo de confirmação expirar ou um assinante responder com uma confirmação negativa, o Pub/Sub poderá enviar a mensagem novamente. Essa tentativa de reenvio é conhecida como Política de repetição da assinatura.
Por padrão, a política de repetição de uma assinatura é definida para usar a opção Repetir imediatamente. Com essa opção, o Pub/Sub reenvia a mensagem quando o prazo de confirmação expira ou um assinante responde com uma confirmação negativa.
Também é possível definir o valor como Repetir após atraso de espera exponencial. Nesse caso, é necessário especificar os valores máximo e mínimo de espera.
Confira algumas diretrizes para definir os valores máximo e mínimo de espera:
Se você definir o valor máximo para a duração da espera, o valor padrão para a duração mínima da espera será de 10 segundos.
Se você definir o valor mínimo para a duração da espera, o valor padrão para a duração máxima da espera será de 600 segundos.
A duração de espera mais longa que você pode especificar é de 600 segundos.
Política de repetição e mensagens em lote
Se as mensagens estiverem em lote, o Pub/Sub iniciará a espera exponencial quando uma das seguintes situações ocorrer:
O assinante envia uma confirmação negativa para cada mensagem no lote.
O prazo de confirmação expira.
Política de repetição e assinatura por push
Se você receber mensagens de uma assinatura por push, o Pub/Sub poderá reenviá-las após a espera em push em vez da duração da espera exponencial. Quando a espera em push é mais longa do que a duração da espera exponencial, o Pub/Sub reenvia mensagens não confirmadas após a espera em push.