sqs sns services programa pricing precios precio notificaciones chile aws activar amazon-web-services amazon-sqs amazon-sns

amazon web services - services - ¿Cuál es la diferencia entre Amazon SNS y Amazon SQS?



sqs pricing (4)

A continuación se presentan algunas de las diferencias.

Tipo de entidad

  • SQS: Cola (similar a JMS)
  • SNS: Tema (Pub / Subsistema)

Consumo de mensajes

  • SQS: mecanismo de extracción: los consumidores sondean y extraen mensajes de SQS
  • SNS: mecanismo de empuje - SNS envía mensajes a los consumidores

Caso de uso

  • SQS: desacoplamiento de 2 aplicaciones y permite el procesamiento asíncrono paralelo
  • SNS: Fanout - Significado que permite procesar el mismo mensaje de varias maneras

Persistencia

  • SQS: los mensajes se conservan durante un tiempo (configurable) no está disponible para el consumidor
  • SNS: No hay persistencia. Cualquiera que sea el consumidor presente en el momento de la llegada del mensaje, obtenga el mensaje y el mensaje se eliminará. Si no hay consumidores disponibles, el mensaje se pierde.

Tipo de consumidor

  • SQS: Se supone que todos los consumidores son idénticos y hacen lo mismo y, por lo tanto, procesan el mensaje de la misma manera
  • SNS: Todos los consumidores están procesando los mensajes de diferentes maneras.

Aplicaciones de muestra

  • SQS: marco de trabajo. Cuando los trabajos se envían a SQS y los consumidores en el otro extremo pueden procesar los trabajos de forma asíncrona. Y si la frecuencia de trabajo aumenta, la cantidad de consumidores puede aumentarse para el procesamiento paralelo
  • SNS: procesamiento de imágenes. Si alguien sube una imagen a S3, marca con marca de agua esa imagen, crea una miniatura y también envía un correo electrónico de agradecimiento. En ese caso, S3 puede enviar notificaciones a SNS Topic y 3 consumidores pueden adjuntarse a SNS topic. La primera marca de agua de la imagen, la segunda crea una miniatura y la tercera envía un correo electrónico de agradecimiento. Todos ellos reciben el mismo mensaje (URL de la imagen) y realizan su procesamiento correspondiente en paralelo.

No entiendo cuándo usaría SNS versus SQS, y ¿por qué siempre están acoplados?


De aws doc:

Amazon SNS permite que las aplicaciones envíen mensajes de tiempo crítico a múltiples suscriptores a través de un mecanismo de "empuje", eliminando la necesidad de verificar o "sondear" periódicamente las actualizaciones.

Amazon SQS es un servicio de cola de mensajes utilizado por las aplicaciones distribuidas para intercambiar mensajes a través de un modelo de sondeo, y se puede usar para desacoplar los componentes de envío y recepción, sin necesidad de que cada componente esté disponible al mismo tiempo.

http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html


AWS SNS es una red de suscriptores de editores, donde los suscriptores pueden suscribirse a temas y recibirán mensajes cada vez que un editor publique sobre ese tema.

AWS SQS es un servicio de cola, que almacena mensajes en una cola. SQS no puede entregar ningún mensaje, donde se necesita un servicio externo (lambda, EC2, etc.) para sondear SQS y capturar mensajes de SQS.

SNS y SQS se pueden usar juntos por múltiples razones.

  1. Puede haber diferentes tipos de suscriptores donde algunos necesitan la entrega inmediata de mensajes, mientras que otros requieren que el mensaje persista, para su uso posterior mediante sondeo. Vea este link .

  2. El " Patter Fanout ". Esto es para el procesamiento asíncrono de mensajes. Cuando se publica un mensaje en SNS, puede distribuirlo a varias colas de SQS en paralelo. Esto puede ser excelente cuando se cargan miniaturas en una aplicación en paralelo, cuando se están publicando imágenes. Vea este aws.amazon.com/blogs/aws/… .

  3. Almacenamiento persistente . Cuando un servicio que va a procesar un mensaje no es confiable. En un caso como este, si SNS envía una notificación a un Servicio, y ese servicio no está disponible, la notificación se perderá. Por lo tanto, podemos usar SQS como almacenamiento persistente y luego procesarlo.


SNS es un sistema distribuido de publicación-suscripción . Los mensajes se envían a los suscriptores a medida que los editores los envían a SNS. SQS es un sistema de colas distribuido. Los mensajes NO son enviados a los receptores. Los receptores tienen que sondear SQS para recibir mensajes. Los mensajes no pueden ser recibidos por varios receptores al mismo tiempo. Cualquier receptor puede recibir un mensaje, procesarlo y borrarlo. Otros receptores no reciben el mismo mensaje más tarde. El sondeo introduce de forma inherente cierta latencia en la entrega de mensajes en SQS, a diferencia de SNS, donde los mensajes se envían inmediatamente a los suscriptores. SNS admite varios puntos finales, como correo electrónico, sms, punto final http y SQS. Si desea un número desconocido y un tipo de suscriptores para recibir mensajes, necesita SNS.

No tienes que acoplar SNS y SQS siempre. Puede hacer que SNS envíe mensajes a correos electrónicos, sms o puntos finales de http aparte de SQS. Hay ventajas al acoplar SNS con SQS. Es posible que no desee que un servicio externo realice conexiones a sus hosts (el firewall puede bloquear todas las conexiones entrantes a su host desde el exterior). Su punto final puede simplemente morir debido a un gran volumen de mensajes. Correo electrónico y SMS tal vez no sea su elección de procesar mensajes rápidamente. Al acoplar SNS con SQS, puede recibir mensajes a su ritmo. Permite a los clientes estar fuera de línea, tolerantes a las fallas de la red y del host. También logras entrega garantizada. Si configura SNS para enviar mensajes a un punto final de http o correo electrónico o SMS, varias fallas en el envío de mensajes pueden provocar que el mensaje se caiga.

SQS se utiliza principalmente para desacoplar aplicaciones o integrar aplicaciones. Los mensajes se pueden almacenar en SQS por un corto período de tiempo (máximo 14 días). SNS distribuye varias copias del mensaje a varios suscriptores. Por ejemplo, supongamos que desea replicar los datos generados por una aplicación en varios sistemas de almacenamiento. Podría usar SNS y enviar estos datos a múltiples suscriptores, cada uno replicando los mensajes que recibe a diferentes sistemas de almacenamiento (s3, disco duro en su host, base de datos, etc.).