As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
O que é o Amazon Simple Queue Service
O Amazon Simple Queue Service (Amazon SQS) oferece uma fila hospedada segura, durável e disponível que permite integrar e desacoplar sistemas de software e componentes distribuídos. O Amazon SQS oferece constructos comuns, como filas de mensagens mortas e tags de alocação de custos. Ele fornece uma API genérica de serviços da Web que você pode acessar usando qualquer linguagem de programação compatível com o AWS SDK.
Tópicos
Benefícios do uso do Amazon SQS
-
Segurança: você controla quem pode enviar e receber mensagens em uma fila do Amazon SQS. Você pode optar pela transmissão de dados sigilosos protegendo o conteúdo das mensagens em filas por meio da criptografia do lado do servidor (SSE) gerenciada pelo Amazon SQS ou das chaves de SSE gerenciadas no AWS Key Management Service (AWS KMS).
-
Durabilidade: para garantir a segurança de suas mensagens, o Amazon SQS as armazena em vários servidores. As filas padrão oferecem suporte à entrega de at-least-once mensagens, e as filas FIFO oferecem suporte ao processamento de mensagens exatamente uma vez e ao modo de alto rendimento.
-
Disponibilidade: o Amazon SQS usa infraestrutura redundante para fornecer acesso altamente simultâneo às mensagens, além de alta disponibilidade para produzir e consumir mensagens.
-
Escalabilidade: o Amazon SQS pode processar cada solicitação em buffer de forma independente, escalando de forma transparente para lidar com qualquer aumento ou pico de carga sem nenhuma instrução de provisionamento.
-
Confiabilidade: o Amazon SQS bloqueia suas mensagens durante o processamento, para que vários produtores possam enviar, e vários consumidores possam receber, mensagens ao mesmo tempo.
-
Personalização: suas filas não precisam ser exatamente iguais. Você pode definir um atraso padrão em uma fila, por exemplo. Você pode armazenar o conteúdo de mensagens maiores que 256 KB usando o Amazon Simple Storage Service (Amazon S3) ou o Amazon DynamoDB, com o Amazon SQS mantendo um ponteiro no objeto do Amazon S3, ou pode dividir uma mensagem grande em mensagens menores.
Arquitetura básica do Amazon SQS
Esta seção descreve as partes de um sistema de mensagens distribuído e explica o ciclo de vida de uma mensagem do Amazon SQS.
Filas distribuídas
Há três partes principais em um sistema de mensagens distribuído: os componentes do sistema distribuído, a fila (distribuída em servidores do Amazon SQS) e as mensagens na fila.
No cenário a seguir, o sistema tem vários produtores (componentes que enviam mensagens para a fila) e consumidores (componentes que recebem mensagens da fila). A fila (que contém as mensagens A a E) armazena as mensagens de forma redundante em vários servidores do Amazon SQS.
Ciclo de vida de mensagens
O cenário a seguir descreve o ciclo de vida de uma mensagem do Amazon SQS em uma fila, da criação à exclusão.
Um produtor (componente 1) envia a mensagem A para uma fila, e a mensagem é distribuída pelos servidores do Amazon SQS de forma redundante.
Quando um consumidor (componente 2) está pronto para processar mensagens, ele consume as mensagens da fila, e a mensagem A é devolvida. Enquanto a mensagem A está sendo processada, ela permanece na fila e não é devolvida para as solicitações de recebimento subsequentes durante todo o tempo limite de visibilidade.
O consumidor (componente 2) exclui a mensagem A da fila para impedir que a mensagem seja recebida e processada novamente quando o tempo limite de visibilidade for esgotado.
nota
O Amazon SQS exclui automaticamente as mensagens que estiverem em uma fila por mais tempo que o período de retenção máximo de mensagens. O período de retenção de mensagens padrão é de quatro dias. No entanto, você pode configurar o período de retenção de mensagens em um valor de 60 segundos a 1.209.600 segundos (14 dias) usando a ação SetQueueAttributes
Diferenças entre o Amazon SQS, Amazon MQ e Amazon SNS
O Amazon SQS, o Amazon SNS
O Amazon SQS separa e escala sistemas e componentes de software distribuídos como um serviço de fila. Normalmente, ele processa mensagens por meio de um único assinante, ideal para fluxos de trabalho em que a prevenção de pedidos e perdas é fundamental. Para uma distribuição mais ampla, a integração do Amazon SQS com o Amazon SNS permite um padrão de mensagens de fanout, enviando mensagens
O Amazon SNS permite que os editores enviem mensagens para vários assinantes por meio de tópicos, que servem como canais de comunicação. Os assinantes recebem mensagens publicadas usando um tipo de endpoint compatível Amazon Data Firehose, como Amazon SQS, Lambda, HTTP, e-mail, notificações push móveis e mensagens de texto móveis (SMS). Esse serviço é ideal para cenários que exigem notificações imediatas, como engajamento do usuário em tempo real ou sistemas de alarme. Para evitar a perda de mensagens quando os assinantes estão off-line, a integração do Amazon SNS com as mensagens de fila do Amazon SQS garante uma entrega consistente.
O Amazon MQ se adapta melhor às empresas que desejam migrar de agentes de mensagens tradicionais, oferecendo suporte a protocolos de mensagens padrão, como AMQP e MQTT, junto com o Apache ActiveMQ e o RabbitMQ.
O gráfico a seguir fornece uma visão geral do tipo de recurso de cada serviço:
Tipo de recurso | Amazon SNS | Amazon SQS | Amazon MQ |
---|---|---|---|
Síncrona | Não | Não | Sim |
Assíncrona | Sim | Sim | Sim |
Filas | Não | Sim | Sim |
Sistema de publicador e assinante de mensagens | Sim | Não | Sim |
Agente de mensagens | Não | Não | Sim |
O Amazon SQS e o Amazon SNS são recomendamos para novas aplicações que podem se beneficiar de uma escalabilidade praticamente ilimitada e de APIs simples. Eles geralmente oferecem soluções mais econômicas para aplicações de alto volume com seus preços. pay-as-you-go Recomendamos o Amazon MQ para migrar aplicativos de agentes de mensagens existentes que dependem da compatibilidade com APIs como JMS ou protocolos como Advanced Message Queuing Protocol (AMQP), MQTT e Simple Text Oriented Message Protocol (STOMP). OpenWire