O que é o Amazon Simple Queue Service - Amazon Simple Queue Service

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.

Benefícios do uso do Amazon SQS

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.

Três partes principais em um sistema de mensagens distribuído: os componentes do seu sistema distribuído, sua fila (distribuída nos servidores Amazon SQS) e as mensagens na fila.

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.

O ciclo de vida de uma mensagem do Amazon SQS em uma fila, da criação à exclusão.

Section one description for the previous lifecycle diagram. Um produtor (componente 1) envia a mensagem A para uma fila, e a mensagem é distribuída pelos servidores do Amazon SQS de forma redundante.

Section two description for the previous lifecycle diagram. 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.

Section three description for the previous lifecycle diagram. 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 e o Amazon MQ oferecem serviços de mensagens altamente escaláveis easy-to-use e gerenciados, cada um projetado para funções específicas em sistemas distribuídos. Aqui está uma visão geral aprimorada das diferenças entre esses serviços:

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 de forma eficaz para vários assinantes ao mesmo tempo.

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. Ele oferece compatibilidade com sistemas legados que precisam de mensagens estáveis e confiáveis sem reconfiguração significativa.

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