Migração de uma fila padrão para uma fila FIFO no Amazon SQS
Se a sua aplicação usa filas padrão e você quiser aproveitar os recursos de ordenação ou de processamento exatamente uma vez das filas FIFO, precisará configurar a fila e sua aplicação corretamente.
Considerações importantes
-
Criar uma fila FIFO: não é possível converter uma fila padrão existente em uma fila FIFO. É necessário criar uma fila FIFO para a aplicação ou excluir a fila padrão existente e recriá-la como uma fila FIFO.
-
Parâmetro de atraso: as filas FIFO não são compatíveis com atrasos por mensagem, apenas com atrasos por fila. Se a aplicação definir o parâmetro
DelaySecondsem cada mensagem, você deverá modificá-la para definirDelaySecondsem toda a fila. -
ID do grupo de mensagens: forneça um ID do grupo de mensagens para cada mensagem enviada. Esse ID permite o processamento paralelo de mensagens enquanto mantém a respectiva ordem. Use uma dimensão empresarial mais detalhada para o ID do grupo de mensagens a fim de escalar melhor com as filas FIFO. Quanto maior for o número de IDs de grupos de mensagens para os quais você distribui mensagens, maior será o número de mensagens disponíveis para consumo.
-
Modo de throughput alto: use o modo de throughput alto recomendado para filas FIFO a fim de atingir um throughput maior. Consulte mais informações sobre cotas de mensagens em Cotas de mensagens do Amazon SQS.
Lista de verificação de migração para filas FIFO
Antes de enviar mensagens para uma fila FIFO, confirme o seguinte:
-
Defina configurações de atraso
-
Modifique a aplicação para remover atrasos por mensagem.
-
Defina o parâmetro
DelaySecondsem toda a fila.
-
-
Defina IDs do grupo de mensagens
-
Organize as mensagens em grupos especificando um ID do grupo de mensagens em uma dimensão empresarial.
-
Use dimensões empresariais mais detalhadas para melhorar a escalabilidade.
-
-
Lide com a desduplicação de mensagens
-
Se a aplicação não puder enviar mensagens com corpos de mensagem idênticos, forneça um ID de desduplicação de mensagem exclusivo para cada mensagem.
-
Se a aplicação envia mensagens com corpos de mensagem exclusivos, habilite a desduplicação baseada em conteúdo.
-
-
Configure o consumidor
-
Geralmente, nenhuma alteração de código é necessária para o consumidor.
-
Se o processamento de mensagens leva muito tempo e o tempo limite de visibilidade está definido como alto, considere adicionar um ID de tentativa de solicitação de recebimento a cada ação
ReceiveMessage. Isso ajuda a repetir as tentativas de recebimento em caso de falhas de rede e impede que as filas pausem devido a tentativas de recebimento com falha.
-
Seguindo essas etapas, você pode garantir que a aplicação funcione corretamente com filas FIFO, aproveitando ao máximo seus recursos de ordenação e processamento de exatamente uma vez. Consulte informações mais detalhadas na Referência de API do Amazon Simple Queue Service.