Amazon SNS vs. SQS: Qual Escolher e Quando?
- #AWS
Você já se perguntou como as mensagens são enviadas e recebidas em redes sociais? Você digita a mensagem, clica em enviar e tcharam sua mensagem chega ao seu amigo, como num passe de mágica!.O que acontece nos bastidores para que sua mensagem seja entregue tão rapidamente? Aqui é onde entram duas ferramentas muito importantes da AWS: o Amazon SNS e o SQS. Continue lendo para descobrir mais sobre os serviços!
O que é o Amazon SNS?
O Amazon Simple Notification Service é um serviço gerenciado que fornece entrega de mensagens de editores para assinantes.Os editores se comunicam de maneira assíncrona com os assinantes produzindo e enviando mensagens para um tópico, que é um canal de comunicação e um ponto de acesso lógico. Os clientes podem se inscrever no tópico do SNS e receber mensagens publicadas usando um tipo de endpoint compatível.Confira na documentação.
O que é o Amazon SQS?
O Amazon Simple Queue Service 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 de serviço da Web genérica e pode ser acessado por qualquer linguagem de programação compatível com o AWS SDK.Confira na documentação
Entendendo o Amazon SNS e SQS
Vamos descomplicar um pouco,imagine que você é o organizador de uma festa de aniversário e deseja convidar todos os seus amigos. Em vez de enviar convites um por um, você pode usar o Amazon SNS para enviar um único convite para todos os seus amigos ao mesmo tempo.
Por outro lado o Amazon SQS é como uma fila de pessoas esperando para comprar ingressos para um filme.Cada pessoa na fila espera pacientemente sua vez para comprar ingressos. O Amazon SQS funciona da mesma maneira! As mensagens são colocadas em uma fila e os computadores as processam uma por uma, garantindo que nenhuma mensagem seja perdida.
Diferenças entre os serviços SNS x SQS
- Modelo de comunicação:
- O Amazon SQS oferece filas hospedadas para integração e desacoplamento de sistemas distribuídos, onde as mensagens são processadas por um único assinante.
- O Amazon SNS é um serviço de publicação e assinatura, onde os editores enviam mensagens para tópicos e os assinantes recebem essas mensagens de forma assíncrona.
- Método de entrega de mensagens:
- O Amazon SQS fornece entrega de mensagens para um único assinante por vez, enquanto o Amazon SNS entrega mensagens a vários endpoints de assinantes.
- Tipo de comunicação:
- O Amazon SQS é utilizado para comunicação ponto a ponto, onde as mensagens são enviadas para um único consumidor por vez.
- O Amazon SNS é usado para comunicação de publicação e assinatura, permitindo que os editores enviem mensagens para vários assinantes ao mesmo tempo.
- Persistência de mensagens:
- No Amazon SQS, as mensagens são armazenadas na fila até que sejam processadas pelo consumidor.
- No Amazon SNS, se um assinante não estiver disponível no momento da publicação da mensagem, ela não será armazenada para recuperação posterior.
Quando usar cada serviço ?
SNS
- Publicar mensagens para MUITOS assinantes diferentes com uma única ação:
- Exemplo: Uma empresa de notícias precisa enviar notificações para milhares de assinantes em diferentes plataformas, como e-mail, SMS e aplicativos móveis. Ao usar o SNS, eles podem publicar uma única mensagem para o tópico SNS e configurar vários endpoints de assinantes para receberem notificações em diferentes formatos.
- Exigem alto rendimento e confiabilidade para publicação e entrega aos consumidores:
- Exemplo: Um sistema de monitoramento de temperatura em um data center precisa alertar os administradores sempre que a temperatura exceder um limite crítico. Ao usar o SNS, o sistema pode publicar alertas para um tópico SNS, garantindo alta confiabilidade na entrega desses alertas aos administradores em tempo real.
- Tem muitos inscritos:
- Exemplo: Uma plataforma de entrega de alimentos precisa notificar centenas de restaurantes sempre que um pedido for feito em sua plataforma. Ao usar o SNS, eles podem publicar informações sobre novos pedidos em um tópico SNS, e os restaurantes podem se inscrever nesse tópico para receber notificações sobre novos pedidos em tempo real.
SQS
- Comunicação assíncrona 1:1 confiável para desacoplar aplicativos:
- Exemplo: Um sistema de comércio eletrônico que precisa desacoplar o processamento de pedidos do processamento de pagamentos. O sistema pode enviar mensagens para uma fila SQS sempre que um pedido for feito e outro componente pode consumir essas mensagens para processar os pagamentos, garantindo que esses processos sejam desacoplados e independentes.
- Limitar o consumo de mensagens:
- Exemplo: Um aplicativo de processamento de imagens que consome mensagens de uma fila SQS para processar imagens carregadas pelos usuários. No entanto, devido à capacidade limitada de processamento ou armazenamento de imagens, o aplicativo pode configurar o número máximo de mensagens que pode processar simultaneamente, garantindo que não sobrecarregue o sistema.
- Processamento de mensagens ordenadas de aberturas:
- Exemplo: Um sistema de e-mail marketing que precisa rastrear e-mails abertos por usuários. Cada vez que um e-mail é aberto, uma mensagem é enviada para uma fila SQS, e um aplicativo de monitoramento consome essas mensagens da fila, garantindo que as aberturas sejam processadas na ordem em que ocorreram.
Agora que entendemos as diferenças entre o Amazon SNS e o SQS, fica mais fácil escolher qual usar em diferentes situações. Se você precisa enviar uma mensagem para muitas pessoas ao mesmo tempo, como um convite para uma festa, o Amazon SNS é a escolha certa. Mas se você precisa de uma fila onde as mensagens são processadas uma por uma, como uma fila de espera para comprar ingressos para um filme, então o Amazon SQS é o que você precisa. Com essas ferramentas poderosas da AWS, você pode criar aplicativos incríveis que enviam e recebem mensagens de maneira eficiente e confiável.
Referências utilizadas: