Quelle est la différence entre Amazon SNS et Amazon SQS?

Je ne comprends pas quand j’utiliserais SNS contre SQS, et pourquoi sont-ils toujours couplés?

SNS est un système dissortingbué de publication et d’abonnement . Les messages sont envoyés aux abonnés lorsqu’ils sont envoyés par les éditeurs à SNS. SQS est un système de queue dissortingbué. Les messages ne sont PAS envoyés aux destinataires. Les récepteurs doivent interroger SQS pour recevoir des messages. Les messages ne peuvent pas être reçus par plusieurs destinataires en même temps. Tout récepteur peut recevoir un message, le traiter et le supprimer. D’autres récepteurs ne reçoivent pas le même message plus tard. L’interrogation introduit insortingnsèquement une certaine latence dans la remise des messages dans SQS, contrairement à SNS où les messages sont immédiatement transmis aux abonnés. SNS prend en charge plusieurs points de terminaison tels que le courrier électronique, les sms, le sharepoint terminaison http et SQS. Si vous souhaitez que le nombre et le type d’abonnés inconnus reçoivent des messages, vous avez besoin de SNS.

Vous n’avez pas toujours besoin de coupler SNS et SQS. Vous pouvez faire en sorte que SNS envoie des messages au courrier électronique, au SMS ou au point d’access http en dehors de SQS. Le couplage de SNS avec SQS présente des avantages. Vous ne souhaitez peut-être pas qu’un service externe établisse des connexions avec vos hôtes (le pare-feu peut bloquer toutes les connexions entrantes vers votre hôte depuis l’extérieur). Votre point final peut simplement mourir à cause du volume important de messages. Email et SMS peut-être pas votre choix de traitement rapide des messages. En couplant SNS avec SQS, vous pouvez recevoir des messages à votre rythme. Il permet aux clients d’être hors ligne, tolérants aux défaillances du réseau et de l’hôte. Vous obtenez également une livraison garantie. Si vous configurez SNS pour envoyer des messages à un sharepoint terminaison http ou à un e-mail ou à un SMS, plusieurs échecs d’envoi de message peuvent entraîner la suppression du message.

SQS est principalement utilisé pour découpler des applications ou intégrer des applications. Les messages peuvent être stockés dans SQS pour une courte durée (maximum 14 jours). SNS dissortingbue plusieurs copies de message à plusieurs abonnés. Par exemple, supposons que vous souhaitiez répliquer des données générées par une application sur plusieurs systèmes de stockage. Vous pouvez utiliser SNS et envoyer ces données à plusieurs abonnés, chacun répliquant les messages reçus sur différents systèmes de stockage (s3, disque dur sur votre hôte, firebase database, etc.).

De aws doc:

Amazon SNS permet aux applications d’envoyer des messages à délai critique à plusieurs abonnés via un mécanisme «push», éliminant ainsi la nécessité de vérifier ou de «scruter» périodiquement les mises à jour.

Amazon SQS est un service de queue de messages utilisé par les applications dissortingbuées pour échanger des messages via un modèle d’interrogation et peut être utilisé pour découpler les composants d’envoi et de réception, sans nécessiter la disponibilité simultanée de chaque composant.

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

Voici quelques différences

Type d’entité

  • SQS: queue (similaire à JMS)
  • SNS: Topic (Pub / Sub system)

Consommation de message

  • SQS: mécanisme d’extraction – Les consommateurs interrogent et extraient les messages de SQS
  • SNS: Push Mechanism – SNS envoie des messages aux consommateurs

Cas d’utilisation

  • SQS: Découpler 2 applications et autoriser le traitement asynchrone parallèle
  • SNS: Fanout – signifie que le même message peut être traité de plusieurs manières

Persistance

  • SQS: les messages sont conservés pour une durée (configurable) sans consommateur disponible
  • SNS: Pas de persistance. Quel que soit le consommateur présent au moment de l’arrivée du message, obtenez le message et le message est supprimé. Si aucun consommateur n’est disponible, le message est perdu.

Type de consommateur

  • SQS: Tous les consommateurs sont supposés être identiques et faire le et donc traiter le message de la même manière
  • SNS: tous les consommateurs traitent les messages de différentes manières

Exemples d’applications

  • SQS: cadre de travail. Lorsque les travaux sont soumis à SQS et que les consommateurs à l’autre extrémité peuvent traiter les travaux de manière asynchrone. Et si la fréquence des travaux augmente, le nombre de consommateurs peut être augmenté pour un traitement en parallèle
  • SNS: traitement de l’image. Si quelqu’un télécharge une image sur S3, marquez cette image en filigrane, créez une vignette et envoyez également un message de remerciement. Dans ce cas, S3 peut envoyer une notification à SNS Topic et 3 consommateurs peuvent être attachés à la rubrique SNS. Le premier filigrane l’image, le deuxième crée une vignette et le troisième envoie un email ThankYou. Tous reçoivent le même message (image URL) et effectuent leur traitement en parallèle.

AWS SNS est un réseau d’abonnés éditeur, où les abonnés peuvent s’abonner à des rubriques et recevoir des messages chaque fois qu’un éditeur publie sur ce sujet.

AWS SQS est un service de queue qui stocke les messages dans une queue. SQS ne peut délivrer aucun message lorsqu’un service externe (lambda, EC2, etc.) est nécessaire pour interroger SQS et récupérer des messages provenant de SQS.

SNS et SQS peuvent être utilisés ensemble pour plusieurs raisons.

  1. Il peut exister différents types d’abonnés, certains nécessitant la livraison immédiate de messages, d’autres nécessitant la persistance du message, pour une utilisation ultérieure via l’interrogation. Voir ce lien .

  2. Le ” Fanout Patter “. Ceci est pour le traitement asynchrone des messages. Lorsqu’un message est publié sur SNS, il peut le dissortingbuer en parallèle à plusieurs files d’attente SQS. Cela peut être très utile lors du chargement de vignettes dans une application en parallèle, lors de la publication des images. Voir ce lien .

  3. Stockage persistant . Lorsqu’un service qui traite un message n’est pas fiable. Dans un cas comme celui-ci, si SNS envoie une notification à un service et que ce service n’est pas disponible, la notification sera perdue. Par conséquent, nous pouvons utiliser SQS en tant que stockage persistant et le traiter ensuite.