Tipos de fila

O Amazon SQS oferece dois tipos de filas para requisitos de aplicações diferentes:

Filas padrão

Taxa de transferência ilimitada: as filas padrão comportam um número quase ilimitado de transações por segundo (TPS) por ação de API.

Entrega pelo menos uma vez: uma mensagem é entregue pelo menos uma vez, mas, às vezes, mais de uma cópia da mensagem é entregue.

Melhor ordenação possível: às vezes, as mensagens podem ser entregues em uma ordem diferente da qual elas foram enviadas.

Filas FIFO

Alta taxa de transferência: por padrão, as filas do tipo FIFO comportam até 300 mensagens por segundo (300 operações de envio, recebimento ou exclusão por segundo). Ao agrupar em lote 10 mensagens por operação (no máximo), as filas FIFO podem dar suporte a até 3.000 mensagens por segundo. Para solicitar um aumento de limite, envie uma solicitação de suporte.

Processamento exatamente uma vez: uma mensagem é entregue uma vez e permanece disponível até que um consumidor a processe e exclua. Duplicatas não são inseridas na fila.

Entrega FIFO: a ordem em que as mensagens são enviadas e recebidas é preservada com rigor (ou seja a primeira a entrar será a primeira a sair).

sqs-what-is-sqs-standard-queue-diagram
sqs-what-is-sqs-fifo-queue-diagram

É possível utilizar filas de mensagem padrão em diversos cenários, contanto que o aplicativo possa processar mensagens que chegam mais de uma vez ou fora de ordem, por exemplo:

  • Desacoplar solicitações dinâmicas do usuário de trabalhos intensos em segundo plano: permite aos usuários enviar mídia, além redimensioná-la e codificá-la.
  • Alocar tarefas para nós com diversos operadores: processe uma alta quantidade de solicitações de validação de cartão de crédito.
  • Mensagens em lote para processamento futuro: agende diversas entradas para adicioná-las ao banco de dados.

As filas FIFO foram criadas para aprimorar o sistema de mensagens entre aplicativos quando a ordem das operações e dos eventos é essencial ou quando duplicatas não podem ser toleradas, por exemplo:

  • Verifique se os comandos inseridos por usuários são executados na ordem correta.
  • Visualize o preço do produto correto ao enviar modificações de preço na ordem correta.
  • Impeça que um aluno se inscreva em um curso antes de criar uma conta.

Funcionalidade

  • Filas e mensagens ilimitadas: crie filas ilimitadas do Amazon SQS com um número ilimitado de mensagens em qualquer região.
  • Tamanho da carga: as cargas de mensagem podem conter até 256 KB de texto em qualquer formato. Cada ‘parte’ de 64 KB da carga é cobrada como 1 solicitação. Por exemplo, uma única chamada da API com uma carga de 256 KB será cobrada como 4 solicitações. Para enviar mensagens maiores que 256 KB, você pode usar a biblioteca de cliente estendida para Java do Amazon SQS, que usa o Amazon S3 para armazenar a carga da mensagem. Será enviada uma referência à carga da mensagem usando o SQS.
  • Lotes: envie, receba ou exclua mensagens em lotes de até 10 mensagens ou 256 KB. Lotes custam o mesmo que mensagens únicas, o que significa que o SQS pode ser ainda mais compensador para os clientes que usam agrupamento em lotes.
  • Sondagem longa: reduza a sondagem externa para minimizar o custo enquanto recebe novas mensagens o mais rápido possível. Quando a sua fila está vazia, as solicitações de sondagem longa aguardam até 20 segundos até a próxima mensagem chegar. As solicitações de sondagem longa custam o mesmo que as solicitações comuns.
  • Retenha as mensagens nas filas por até 14 dias.
  • Envie e leia as mensagens simultaneamente.
  • Bloqueio de mensagens: quando uma mensagem é recebida, ela se torna "bloqueada" enquanto está sendo processada. Isso impede que outros computadores processem a mensagem simultaneamente. Se houver falha no processamento da mensagem, o bloqueio expirará e a mensagem será disponibilizada novamente.
  • Compartilhamento de filas: compartilhe com segurança as filas do Amazon SQS de modo anônimo ou com contas específicas da AWS. O compartilhamento de filas também pode ser restringido pelo endereço IP e pelo período do dia.
  • Criptografia no lado do servidor (SSE): proteja o conteúdo de mensagens nas filas do Amazon SQS usando chaves gerenciadas no AWS Key Management Service (AWS KMS). A SSE criptografa mensagens assim que o Amazon SQS as recebe. As mensagens são armazenadas no formato criptografado e o Amazon SQS as descriptografa apenas quando elas são enviadas para um usuário autorizado.
  • Dead Letter Queues (DLQ): cuide das mensagens que não foram processadas com êxito por um consumidor com as Dead Letter Queues. Quando a contagem máxima de recebimentos de uma mensagem for ultrapassada, ela será transferida para a DLQ associada à fila de origem. Configure processos de consumidores separados para as DLQs, o que pode ajudar na análise e na compreensão do motivo pelo qual as mensagens ficaram retidas. A DLQs devem ser do mesmo tipo da fila de origem (padrão ou FIFO).

Usar o Amazon SQS com outros serviços da web da infraestrutura da AWS

As filas de mensagens do Amazon SQS podem ser usadas com outros serviços da AWS, como Redshift, DynamoDB, RDS, EC2, ECS, Lambda e S3 para aumentar a escalabilidade e a confiabilidade de aplicativos distribuídos. Veja a seguir alguns padrões de projeto comuns:

  • Filas de trabalho: desconecte componentes de um aplicativo distribuído que podem não processar o mesmo volume de trabalho simultaneamente.
  • Operações de buffer e lote: acrescente escalabilidade e confiabilidade à sua arquitetura, e suavize picos de volume temporários sem perder mensagens ou aumentar a latência.
  • Descarregamento de solicitações: remova operações lentas de caminhos de solicitação interativos enfileirando a solicitação.
  • Fanout: combine o SQS com o Simple Notification Service (SNS) para enviar cópias idênticas de uma mensagem a várias filas em paralelo.
  • Prioridade: use filas separadas para disponibilizar a priorização do trabalho.
  • Escalabilidade: como as filas de mensagens dissociam seus processos, torna-se fácil expandir a taxa de envio e recebimento de mensagens: basta adicionar outro processo.
  • Resiliência: a falha de parte do seu sistema não o desativa por inteiro. As filas de mensagens dissociam componentes do seu sistema, portanto, se um processo que estiver fazendo a leitura de mensagens da fila falhar, as mensagens ainda poderão ser adicionadas à fila para serem processadas quando o sistema for recuperado.

Uso pretendido e restrições

O uso deste serviço está sujeito ao Contrato do cliente da Amazon Web Services.

Saiba mais sobre a definição de preço do Amazon SQS

Acesse a página de definição de preço
Pronto para criar?
Comece a usar o Amazon SQS
Mais dúvidas?
Entre em contato conosco