Filas SQS Standard versus FIFO
Compare as filas Standard, voltadas ao throughput máximo, com as filas FIFO, voltadas ao processamento ordenado e exatamente uma vez, e escolha o tipo adequado.
Filas SQS Standard versus FIFO é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
Por que as filas de mensagens são importantes
As filas de mensagens desacoplam produtores e consumidores: um produtor envia uma mensagem para a fila sem esperar que um consumidor a processe. O consumidor processa as mensagens no próprio ritmo. Esse padrão impede que produtores rápidos sobrecarreguem consumidores lentos, permite o dimensionamento independente de cada camada e oferece um buffer durável caso o consumidor fique temporariamente indisponível. O Amazon SQS é um serviço de filas de mensagens totalmente gerenciado e altamente disponível da AWS.
Características das filas Standard do SQS
As filas Standard oferecem vazão ilimitada (transações por segundo praticamente ilimitadas). Elas garantem a entrega pelo menos uma vez — em casos raros, uma mensagem pode ser entregue mais de uma vez (devido à infraestrutura distribuída). A ordem das mensagens segue o princípio do melhor esforço: em geral, as mensagens são entregues na ordem em que foram enviadas, mas isso não é garantido. As filas Standard são ideais quando a vazão é fundamental e o consumidor consegue lidar com duplicatas ocasionais e entregas fora de ordem.
# Create a Standard queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue'
# Send a message
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
--message-body 'OrderId-12345'Características das filas FIFO do SQS
As filas FIFO (First-In, First-Out) garantem o processamento exatamente uma vez e a ordenação rigorosa das mensagens. As mensagens são entregues exatamente na ordem em que são enviadas. As filas FIFO oferecem suporte a até 300 transações por segundo (3.000 com agrupamento). Os nomes das filas FIFO devem terminar com .fifo. Use filas FIFO quando a ordem e a semântica de processamento exatamente uma vez forem fundamentais — por exemplo, em transações financeiras, no processamento de pedidos de comércio eletrônico e em atualizações de estoque.
# Create a FIFO queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue.fifo' \
--attributes '{
"FifoQueue": "true",
"ContentBasedDeduplication": "true"
}'Grupos de mensagens em filas FIFO
As filas FIFO usam IDs de grupo de mensagens para particionar a ordenação dentro da fila. As mensagens com o mesmo ID de grupo são entregues em ordem; as mensagens com IDs de grupo diferentes podem ser processadas em paralelo. Por exemplo, use customerId como ID de grupo: os pedidos de cada cliente são processados em sequência, mas os pedidos de clientes diferentes são processados simultaneamente. Isso permite a semântica FIFO com escalabilidade horizontal entre os consumidores.
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
--message-body 'Order details here' \
--message-group-id 'customer-789' \
--message-deduplication-id 'order-uuid-abc123'Deduplicação em filas FIFO
As filas FIFO evitam o processamento duplicado de mensagens usando um ID de deduplicação. Se duas mensagens forem enviadas com o mesmo ID dentro de um intervalo de deduplicação de 5 minutos, a segunda será descartada silenciosamente. Você pode fornecer explicitamente um ID de deduplicação (MessageDeduplicationId) ou ativar a deduplicação baseada no conteúdo, na qual o SQS calcula automaticamente um hash SHA-256 do corpo da mensagem para usá-lo como ID de deduplicação. A deduplicação baseada no conteúdo é mais simples, mas exige corpos de mensagem exclusivos.
Retenção de mensagens e limites de tamanho
O SQS retém as mensagens por um período configurável: mínimo de 1 minuto e máximo de 14 dias (o padrão é 4 dias). As mensagens que não forem consumidas dentro do período de retenção serão excluídas automaticamente. O tamanho máximo da mensagem é de 256 KB. Para cargas úteis maiores, use a Biblioteca de cliente estendido do SQS ou armazene a carga útil no S3 e envie apenas a referência ao objeto do S3 na mensagem do SQS. As filas Standard e FIFO compartilham esses limites.
Recebimento e exclusão de mensagens
Os consumidores consultam a fila usando receive-message. Depois de recebida, a mensagem fica invisível (oculta para os outros consumidores) durante o período do tempo limite de visibilidade. O consumidor deve processar a mensagem e depois excluí-la explicitamente usando o identificador de recibo antes que o tempo limite expire. Se o consumidor falhar ou não a excluir a tempo, a mensagem reaparecerá e outro consumidor poderá processá-la, permitindo a entrega pelo menos uma vez nas filas Standard.
RECEIPT=$(aws sqs receive-message \
--queue-url 'https://...' \
--query 'Messages[0].ReceiptHandle' --output text)
# Process message, then delete it
aws sqs delete-message \
--queue-url 'https://...' \
--receipt-handle "$RECEIPT"Comparação de vazão na prática
As filas Standard são adequadas para: geração de miniaturas de imagens, envio de e-mails de notificação e processamento de registros — cargas de trabalho nas quais as duplicatas podem ser tratadas de forma idempotente e a ordem não é importante. As filas FIFO são necessárias para: processamento de transferências bancárias (débito antes do crédito), atualizações do carrinho de compras de comércio eletrônico (adicionar o item antes da finalização da compra) e etapas de fluxo de trabalho em que a etapa 2 deve seguir a etapa 1. Na maioria das arquiteturas de alta vazão, as filas Standard são a escolha padrão; mude para FIFO somente quando a ordenação ou a entrega exatamente uma vez for um requisito obrigatório.
Agrupamento para obter mais vazão e reduzir custos
O SQS cobra por solicitação de API. Use operações em lote para enviar, receber e excluir até 10 mensagens por chamada de API, reduzindo os custos em até 10 vezes. As filas FIFO oferecem suporte ao modo de alta vazão (que ativa o agrupamento), elevando o limite para 3.000 mensagens por segundo com agrupamentos de 10. Em produção, use sempre send-message-batch e delete-message-batch para minimizar os custos das chamadas de API.
aws sqs send-message-batch \
--queue-url 'https://...' \
--entries '[
{"Id": "msg1", "MessageBody": "Order-001"},
{"Id": "msg2", "MessageBody": "Order-002"},
{"Id": "msg3", "MessageBody": "Order-003"}
]'Políticas de acesso à fila
As filas do SQS são protegidas por políticas baseadas em recursos (políticas da fila), que controlam quem pode enviar mensagens para a fila ou recebê-las dela. Isso é fundamental ao permitir acesso entre contas ou quando o SNS publica em uma fila do SQS. O acesso do Lambda ao SQS é controlado pela política do IAM da função de execução do Lambda (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes). Sempre aplique o princípio do menor privilégio: não conceda a um consumidor mais permissões do que as necessárias para receber e excluir mensagens.
Escolhendo entre Standard e FIFO: um guia de decisão
Faça estas perguntas para escolher: (1) A ordem é importante? Se sim → FIFO. (2) O processamento exatamente uma vez é necessário? Se sim → FIFO. (3) É necessária uma vazão superior a 3.000 TPS? Se sim → Standard (o FIFO é limitado a 3.000 TPS com agrupamento). (4) Os consumidores conseguem lidar com duplicatas? Se sim → Standard é mais simples e barato. Para a prova SAA-C03, as palavras-chave de FIFO são: 'ordenação', 'exatamente uma vez', 'sequencial', 'deduplicação'. As palavras-chave de Standard são: 'alta vazão', 'melhor esforço', 'pelo menos uma vez'.
Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) abordados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que: as filas Standard oferecem vazão ilimitada, entrega pelo menos uma vez e ordenação pelo melhor esforço, sendo adequadas para cargas de trabalho de alto volume que toleram duplicatas; as filas FIFO garantem processamento exatamente uma vez e ordenação rigorosa das mensagens usando IDs de grupo de mensagens e IDs de deduplicação, com limite de 3.000 TPS com agrupamento; e a escolha entre elas depende de a ordenação e a deduplicação serem requisitos obrigatórios. A seguir, exploraremos o tempo limite de visibilidade, as filas de mensagens não entregues e a consulta prolongada.
Perguntas Frequentes
A aula “Filas SQS Standard versus FIFO” é grátis?
Sim — o texto completo de “Filas SQS Standard versus FIFO” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “Filas SQS Standard versus FIFO”?
Compare as filas Standard, voltadas ao throughput máximo, com as filas FIFO, voltadas ao processamento ordenado e exatamente uma vez, e escolha o tipo adequado. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Filas SQS Standard versus FIFO”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Filas SQS Standard versus FIFO
- Tempo limite de visibilidade, DLQ e sondagem longa
- Tópicos do SNS e arquitetura de distribuição
- Filtragem de mensagens do SQS e integração SNS + SQS