trilha

Tecnologias/03 - Filas/03 - Amazon SQS2 min

Amazon SQS

Definição

Amazon Simple Queue Service (SQS) é um serviço de filas gerenciado pela AWS. O produtor publica mensagens e os consumidores solicitam mensagens para processar. A AWS mantém a infraestrutura da fila; a aplicação continua responsável pelo significado do conteúdo, pelo tratamento de falhas e pelos efeitos do processamento.

O SQS usa APIs como SendMessage, ReceiveMessage e DeleteMessage. Receber não remove a mensagem: a exclusão faz parte da confirmação de que o trabalho terminou. Referência: funcionamento do SQS.

Exemplo de fluxo

flowchart LR
  A[API de pedidos] --> Q[Fila SQS]
  Q --> W1[Worker 1]
  Q --> W2[Worker 2]
  W1 --> B[Banco de dados]
  W2 --> B

A API publica um evento com o identificador do pedido. Os workers dividem o trabalho. Se faturamento e notificações precisam receber cada evento de forma independente, podem usar filas próprias assinando um tópico SNS. Uma única fila compartilhada representa consumidores competindo pelo trabalho.

Polling

Polling é solicitar mensagens à fila. No short polling, a resposta é imediata e pode vir vazia. No long polling, a chamada espera uma mensagem por até o tempo configurado, com máximo de 20 segundos. Se houver mensagem antes disso, pode responder antes do prazo. Esse mecanismo reduz respostas vazias; não é uma espera obrigatória antes de cada entrega. Referência: short e long polling.

SQS, SNS e RabbitMQ

  • SQS: mantém mensagens para consumo posterior por meio da API da AWS.
  • SNS: publica em tópicos para distribuir eventos a assinaturas, inclusive filas SQS.
  • RabbitMQ: oferece protocolos e mecanismos próprios, como exchanges e bindings; Amazon MQ pode hospedá-lo como serviço gerenciado.

Relação com S3

O corpo de uma mensagem SQS pode ter até 1 MiB. Para conteúdos maiores, uma abordagem é guardar o conteúdo no S3 e enviar sua referência. Isso exige coordenar permissões, existência e tempo de retenção do objeto com o consumo da mensagem. Referência: limites de mensagens.

Aprofundamento aplicado

A fila absorve picos dentro de um orçamento

Suponha entrada de 500 mensagens/s por dois minutos e capacidade de processamento de 200/s. O acúmulo cresce aproximadamente 36 mil mensagens durante o pico, desconsiderando retries e variação. O sistema precisa ter capacidade excedente depois para reduzir o atraso.

A API pode continuar aceitando mensagens enquanto o tempo até o efeito cresce. Uma métrica de idade ajuda a ligar o estado da fila ao prazo prometido ao usuário.

Operações em lote exigem olhar cada resultado

APIs de lote podem devolver sucesso parcial. Uma resposta HTTP bem-sucedida não significa que todos os itens foram aceitos. Retente os itens que falharam conforme seu erro e preserve a identidade lógica das mensagens. Referência: SendMessageBatch.

Exercício: modele um lote com oito sucessos e dois erros transitórios. Resultado esperado: reenviar os dois itens sem recriar oito tarefas legítimas; o consumidor continua preparado para duplicidade em situações incertas.

Relacionado: 2. Standard, FIFO e Deduplicação no SQS · 1. Amazon S3 · SNS.


Parte de Amazon SQS

Buscar

Busca por título, seção e texto das notas