В чем разница между Amazon SNS и Amazon SQS?
Я не понимаю, когда я буду использовать SNS против SQS, и почему они всегда связаны вместе?
4 ответа:
от aws doc:
Amazon SNS позволяет приложениям отправлять сообщения, критичные по времени множественные подписчики через механизм "нажима", исключая потребность периодически проверять или" опрашивать " обновления.
Amazon SQS-это служба очереди сообщений, используемая распределенными приложениями для обмена сообщениями через модель опроса, и может быть использован для отделите отправляющие и принимающие компоненты-не требуя каждого компонента одновременно доступный.
http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html
Ниже приведены некоторые из различий
Тип Объекта
- SQS: очередь (аналогично JMS)
- SNS: тема (Pub / Sub system)
потребление сообщением
- SQS: механизм вытягивания-опрос потребителей и вытягивание сообщений из SQS
- SNS: нажимной механизм-SNS толкает сообщения к потребителям
Use Case
- SQS : Развязка 2 приложений и возможность параллельной асинхронной обработки
- SNS: Fanout-это означает, что одно и то же сообщение обрабатывается несколькими способами
настойчивость
- SQS: сообщения сохраняются в течение некоторого (настраиваемого) времени нет потребителя
- SNS: нет настойчивости. Какой бы потребитель ни присутствовал в момент прибытия сообщения, получите сообщение и сообщение будет удалено. Если нет потребителей доступно, после чего сообщение будет потеряно.
Потребительского Типа
- SQS : все потребители должны быть идентичны и делать и, следовательно, обрабатывать сообщение таким же образом
- SNS: все потребители обрабатывают сообщения по-разному
образцы заявлений
- ЗК : основы работы. Где рабочие места представлены в SQS, а потребители на другом конце могут обрабатывайте задания асинхронно. И если частота задания увеличивается, то количество потребителей может быть увеличено для параллельной обработки
- SNS: обработка изображений. Если кто-то загружает изображение в S3, затем пометьте это изображение, создайте миниатюру, а также отправьте электронное письмо с благодарностью. В этом случае S3 может отправлять уведомления в тему SNS, а 3 потребителя могут быть прикреплены к теме SNS. 1-й водяной знак изображения, 2-й создает эскиз, а 3-й отправляет благодарственное письмо. Все они получение одного и того же сообщения (URL изображения) и выполнение их соответствующей обработки параллельно.
AWS SNS - это сеть подписчиков издателя, в которой подписчики могут подписываться на темы и получать сообщения всякий раз, когда издатель публикует эту тему.
AWS SQS - это служба очереди, которая хранит сообщения в очереди. SQS не может доставлять сообщения, где требуется внешняя служба (lambda, EC2 и т. д.) Для опроса SQS и получения сообщений от SQS.
SNS и SQS может использоваться вместе для нескольких причины.
там могут быть различные виды абонентов, где некоторые нуждаются в немедленная доставка сообщений, где некоторые из них потребуют сообщения для сохранения, для последующего использования через опрос. Смотрите это ссылке.
" Fanout Скороговоркой."Это для асинхронной обработки сообщения. Когда сообщение публикуется в SNS, оно может распространяться к нескольким очередям SQS параллельно. Это может быть здорово, когда погрузка миниатюры в приложении параллельно, когда изображения создаются опубликованный. Смотрите это ссылке.
постоянное хранение. Когда служба, которая будет обрабатывать сообщение не является надежным. В таком случае, если SNS толкает a уведомление для службы, и эта служба недоступна, а затем уведомление будет потеряно. Поэтому мы можем использовать SQS как постоянный хранение и после этого обрабатывает его потом.