AWS - Разлика между SQS и SNS

SQS (Simple Queue Service) срещу SNS (Simple Notification Service) в AWS (Amazon Web Services)

SNS и SQS

SNS (проста услуга за уведомяване)

SNS

SNS е Amazon Simple Notification Service (Amazon SNS) е бърза, гъвкава, напълно управлявана услуга за известяване чрез натискане, която ви позволява да изпращате индивидуални съобщения или групови съобщения до голям брой получатели. Amazon SNS прави просто и рентабилно да изпращате push известия до потребителите на мобилни устройства, получатели на електронна поща или дори да изпращате съобщения до други разпространени услуги.

Разпределена система за публикуване и абониране. Съобщенията се избутват към абонатите, когато и когато са изпратени от издателите до SNS, SNS поддържа няколко крайни точки като имейл, sms, http крайна точка и SQS. Ако искате неизвестен брой и вид абонати да получават съобщения, имате нужда от SNS.

С Amazon SNS можете да изпращате push известия до устройства на Apple, Google, Fire OS и Windows, както и на устройства с Android в Китай с Baidu Cloud Push. Можете да използвате SNS за изпращане на SMS съобщения до потребители на мобилни устройства в САЩ или до получатели по имейл по целия свят.

SNS е разпределена система за публикуване и абониране. Съобщенията се бутат към абонатите както и когато те се изпращат от издателите до SNS.

SQS (проста услуга на опашка)

SQS

SQS е разпределена система за опашка. Съобщенията не се бутат към приемници. Получателите трябва да анкетират SQS, за да получават съобщения. Съобщенията не могат да се получават от няколко приемника едновременно. Всеки един получател може да получи съобщение, да го обработи и изтрие. Другите получатели не получават същото съобщение по-късно. Анкетирането по своята същност въвежда известна забавяне в доставката на съобщения в SQS за разлика от SNS, където съобщенията незабавно се бутат към абонатите.

SQS се използва главно за отделяне на приложения или интегриране на приложения. Съобщенията могат да се съхраняват в SQS за кратко време (максимум 14 дни). SNS разпространява няколко копия на съобщение на няколко абонати. Например, нека кажем, че искате да копирате данни, генерирани от приложение в няколко системи за съхранение. Можете да използвате SNS и да изпращате тези данни до множество абонати, като всеки репликира съобщенията, които получава, към различни системи за съхранение (s3, твърд диск на вашия хост, база данни и т.н.).

SNS поддържа няколко крайни точки като имейл, sms, http крайна точка и SQS. Ако искате неизвестен брой и вид абонати да получават съобщения, имате нужда от SNS.

Следват някои от разликите:

Тип субект

  • SQS: опашка (подобно на JMS)
  • SNS: Тема (Pub / Sub система)

Консумация на съобщения

  • SQS: Механизъм на дърпане - Потребителите анкетират и изтеглят съобщения от SQS
  • SNS: Push Mechanism - SNS Изпраща съобщения към потребителите

Използвайте случай

  • SQS: Декупаж на две приложения и позволява паралелна асинхронна обработка
  • SNS: Fanout - означава, че позволява едно и също съобщение да се обработва по много начини

упоритост

  • SQS: Съобщенията се запазват за известно време (може да се конфигурира), няма потребител
  • SNS: Без постоянство. Който и потребител да присъства в момента на пристигането на съобщението, вземете съобщението и съобщението се изтрива. Ако няма потребители, тогава съобщението се губи.

т.е. в SQS доставката на съобщения е гарантирана, но в SNS не е.

Тип на потребителя

  • SQS: Предполага се, че всички потребители са идентични и следователно обработват съобщенията по абсолютно същия начин
  • SNS: Всички потребители (трябва да бъдат) обработват съобщенията по различни начини

Примерни приложения

  • SQS: Работна рамка. Когато заданията се предават на SQS и потребителите от другия край могат да обработват задачите асинхронно. И ако честотата на работа се увеличава, тогава броят на потребителите може да се увеличи за паралелна обработка
  • SNS: Обработка на изображения. Ако някой качи изображение в S3, след това воден знак, създайте миниатюра и също изпратете имейл на благодарение. В този случай S3 може да изпраща уведомление до SNS Topic и 3 потребители могат да бъдат прикачени към темата за SNS. 1-ва водна маркировка на изображението, 2-ра създава миниатюра, а 3-та изпраща имейл на благодарение. Всички те получават едно и също съобщение (URL адрес на изображението) и паралелно извършват съответната си обработка.

Не е нужно винаги да сдвоявате SNS и SQS. Можете да накарате SNS да изпраща съобщения до имейл, sms или http крайна точка освен SQS. Има предимства за свързване на SNS със SQS. Може да не искате външна услуга да осъществява връзки с вашите хостове (защитната стена може да блокира всички входящи връзки към вашия хост отвън). Вашата крайна точка може просто да умре поради тежък обем съобщения. Имейл и SMS може би не е вашият избор за бързо обработване на съобщения. Чрез свързване на SNS със SQS, можете да получавате съобщения с вашето темпо. Тя позволява на клиентите да бъдат офлайн, толерантни към грешки в мрежата и хоста. Постигате и гарантирана доставка. Ако конфигурирате SNS да изпраща съобщения до http крайна точка или имейл или SMS, няколко грешки при изпращане на съобщение могат да доведат до отпадане на съобщението.

SQS се използва главно за отделяне на приложения или интегриране на приложения. Съобщенията могат да се съхраняват в SQS за кратко време (максимум 14 дни). SNS разпространява няколко копия на съобщение на няколко абонати. Например, нека кажем, че искате да копирате данни, генерирани от приложение в няколко системи за съхранение. Можете да използвате SNS и да изпращате тези данни до множество абонати, като всеки репликира съобщенията, които получава, към различни системи за съхранение (s3, твърд диск на вашия хост, база данни и т.н.).

Честито облаче !!!