Usando filas de mensagens mortas no Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando filas de mensagens mortas no Amazon SQS

O Amazon SQS oferece suporte a filas de cartas mortas (DLQs), que as filas de origem podem direcionar para mensagens que não foram processadas com sucesso. As DLQs são úteis para depurar seu aplicativo porque você pode isolar mensagens não consumidas para determinar por que o processamento não foi bem-sucedido. Para um desempenho ideal, é uma prática recomendada manter a fila de origem e o DLQ dentro da mesma região Conta da AWS . Quando as mensagens estiverem em uma fila de mensagens mortas, você poderá:

  • Examinar logs para encontrar as exceções que podem ter causado a entrega de mensagens a uma fila de mensagens mortas.

  • Analise o conteúdo das mensagens movidas para a fila de mensagens mortas para diagnosticar problemas no aplicativo.

  • Determinar se você concedeu ao consumidor tempo suficiente para processar mensagens.

  • Mova as mensagens para fora da fila de mensagens mortas usando o redirecionamento da fila de mensagens mortas.

Você deve primeiro criar uma nova fila antes de configurá-la como uma fila de mensagens mortas. Para obter informações sobre como configurar uma fila de mensagens não entregues usando o console do Amazon SQS, consulte Saiba como configurar uma fila de mensagens sem saída usando o console do Amazon SQS. Para obter ajuda com filas de mensagens mortas, por exemplo, como configurar um alarme para qualquer mensagem movida para uma fila de mensagens mortas, consulte. Crie alarmes para filas de mensagens sem saída usando a Amazon CloudWatch

Usando políticas para filas de cartas mortas

Use uma política de redirecionamento para especificar o. maxReceiveCount maxReceiveCountÉ o número de vezes que um consumidor pode receber uma mensagem de uma fila de origem antes de ser movida para uma fila de mensagens mortas. Por exemplo, se maxReceiveCount for definido como um valor baixo, como 1, uma falha no recebimento de uma mensagem faria com que a mensagem fosse movida para a fila de mensagens mortas. Para garantir que seu sistema seja resiliente contra erros, defina o maxReceiveCount alto o suficiente para permitir novas tentativas suficientes.

A política de permissão de redirecionamento especifica quais filas de origem podem acessar a fila de mensagens mortas. Você pode escolher se deseja permitir todas as filas de origem, permitir filas de origem específicas ou negar o uso da fila de mensagens mortas por todas as filas de origem. O padrão permite que todas as filas de origem usem a fila de mensagens mortas. Se você optar por permitir filas específicas usando a byQueue opção, poderá especificar até 10 filas de origem usando a fila de origem Amazon Resource Name (ARN). Se você especificar denyAll, a fila não pode ser usada como uma fila de mensagens mortas.

Entendendo os períodos de retenção de mensagens para filas de mensagens sem saída

Para filas comuns, a validade de uma mensagem é sempre baseada em seu carimbo de data/hora de enfileiramento original. Quando uma mensagem é movida para uma fila de mensagens mortas, o carimbo de data/hora de enfileiramento permanece inalterado. A ApproximateAgeOfOldestMessage métrica indica quando a mensagem foi movida para a fila de mensagens mortas, não quando a mensagem foi enviada originalmente. Por exemplo, suponha que uma mensagem fique um dia na fila original antes de ser movida para uma fila de mensagens mortas. Se o período de retenção da fila de mensagens mortas for de quatro dias, a mensagem será excluída da fila de mensagens mortas após três dias e a ApproximateAgeOfOldestMessage será de três dias. Portanto, é uma prática recomendada definir sempre o período de retenção de uma fila de mensagens mortas para ser maior do que o período de retenção da fila original.

Para filas FIFO, o carimbo de data/hora da fila é redefinido quando a mensagem é movida para uma fila de mensagens não entregues. A métrica ApproximateAgeOfOldestMessage indica quando a mensagem foi movida para a fila de mensagens não entregues. No mesmo exemplo acima, a mensagem é excluída da fila de mensagens não entregues após quatro dias e ApproximateAgeOfOldestMessage é de quatro dias.