Что больше подходит для отправки команды, SNS или SQS? - PullRequest
0 голосов
/ 04 мая 2019

Если Service1 хочет отправить команду асинхронно по отношению к service2, что было бы идеально:

service1 -> sns -> sqs -> service2

или

service1 -> sqs -> service2

Что послужит основанием для принятия решения об этом?

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Amazon SQS не будет "доставлять" сообщение.Скорее, приложению нужно опросить SQS, чтобы запросить сообщение.

Таким образом, если вы хотите «протолкнуть» сообщение в ваше приложение, тогда Amazon SNS более уместно, но оно будетне очереди сообщений.

Некоторые люди предпочитают реализовать первый вариант, так как другие потребители могут быть добавлены без изменения существующего кода или конфигурации.Новые потребители просто подпишутся на существующую тему Amazon SNS.

Однако, если вы точно знаете, что другого потребителя никогда не будет, вы можете спокойно переходить к очереди Amazon SQS.

1 голос
/ 05 мая 2019

Если вы хотите, чтобы ваша команда была получена только одним потребителем , используйте SQS.

Если вы хотите, чтобы ее получили многие потребители опубликуйте вашу команду вSNS и подписывайтесь с SQS.В дополнение к SQS доступно множество различных типов подписки, например, Lambda, Email, Webhook и т. Д.

В обоих случаях команды (или сообщения) будут доставляться асинхронно.

Если требуется только один потребительи также заказал доставку вы можете использовать очереди FIFO SQS.Заказанная доставка не может быть достигнута с SNS + SQS.

...