Criar aplicações baseadas em componentes individuais em que cada uma desempenha uma função discreta é uma prática recomendada que melhora a escalabilidade e a confiabilidade. Usando filas de mensagens, você pode enviar, armazenar e receber mensagens entre componentes de aplicações em qualquer volume, sem perder mensagens ou exigir que outros serviços estejam sempre disponíveis.
As filas de mensagens oferecem várias opções que permitem especificar como as mensagens são entregues e protegidas, descritas aqui. As filas também podem ser combinadas com um sistema de mensagens de Pub/Sub em um padrão fanout.
Para começar a usar o Amazon Simple Queue Service (SQS), bastam apenas três comandos simples.
Experimente o Amazon SQS gratuitamenteO nível gratuito da AWS inclui 1 milhão de solicitações com o Amazon Simple Queue Service (SQS).
A maioria das filas de mensagens disponibiliza opções de recuperação de mensagens por push e por pull. O recebimento por pull significa consultar continuamente a fila para verificar a existência de novas mensagens. O recebimento por push significa que o consumidor é notificado quando há uma mensagem disponível (também conhecido como sistema de mensagens de Pub/Sub). Você também pode usar a sondagem longa para permitir que os pulls esperem um determinado tempo para que novas mensagens cheguem antes de serem concluídas.
Muitas filas de mensagens oferecem suporte à definição de um horário de entrega específico para uma mensagem. Se você precisa ter um atraso comum para todas as mensagens, poderá configurar uma fila de atraso.
As filas de mensagens podem armazenar várias cópias de mensagens para redundância e alta disponibilidade e reenviar mensagens em caso de falhas de comunicação ou erros para garantir que sejam entregues pelo menos uma vez.
Quando duplicidades não podem ser permitidas, as filas de mensagens first-in-first-out (FIFO, primeira a entrar, primeira a sair) garantirão que cada mensagem seja entregue exatamente uma vez (e apenas uma vez) por meio da filtragem automática de duplicidades.
Nessas filas, o registro mais antigo (ou o primeiro), às vezes chamado de “cabeça” da fila, é processado primeiro. Para saber mais sobre as filas FIFO do Amazon SQS, consulte o Guia do desenvolvedor.
Você também pode ler nossos blogs: Using Python and Amazon SQS FIFO Queues to Preserve Message Sequencing, How the Amazon SQS FIFO API Works e FIFO Queues with Exactly-Once Processing & Deduplication.
Uma fila de mensagens não entregues é uma fila para a qual outras filas podem enviar mensagens que não podem ser processadas com sucesso. Isso faz com que seja mais fácil reservá-las para inspeção adicional sem bloquear o processamento da fila ou usar ciclos de CPU em uma mensagem que pode nunca ser consumida com sucesso.
Para saber mais sobre filas de mensagens não entregues, leia nosso blog, Using Amazon SQS Dead-Letter Queues to Control Message Failure. Para saber como usar filas de mensagens não entregues no Amazon SQS, consulte nosso Guia do desenvolvedor.
A maioria das filas de mensagens disponibiliza uma ordenação do tipo melhor esforço que garante, de forma geral, que as mensagens sejam entregues na mesma ordem em que foram enviadas e que uma mensagem seja entregue pelo menos uma vez.
Poison pills são mensagens especiais que podem ser recebidas, mas não processadas. Elas são um mecanismo usado para sinalizar a um consumidor para encerrar seu trabalho de modo que ele não fique mais esperando por novas entradas, e é semelhante a fechar um soquete em um modelo cliente/servidor.
As filas de mensagens autenticam as aplicações que tentam acessar a fila e permitem criptografar mensagens na rede e na própria fila. Para saber mais sobre a segurança de filas na AWS, leia nosso blog, Server-Side Encryption for Amazon Simple Queue Service (SQS). Você também pode obter mais informações sobre os recursos de segurança do Amazon SQS no nosso Guia do desenvolvedor.
Comece a usar gratuitamente com apenas três comandos simples.