如果Service1想异步地向service2发送命令,这将是理想的:
service1 -> sns -> sqs -> service2
或
service1 -> sqs -> service2
对此作出决定的依据是什么?
发布于 2019-05-05 07:15:35
如果您希望接收您的命令,那么只有一个使用者使用SQS。
如果您希望接收到它,那么许多消费者会将您的命令发布到SNS,并使用订阅。除了SQS之外,还有许多不同的订阅类型,例如Lambda、Email、Web钩子等等。
在这两种情况下,命令(或消息)将异步传递。
如果您只想要一个消费者,并且还订购了交付,那么您可以使用FIFO队列。订购交货不能通过SNS + SQS实现。
发布于 2019-05-05 09:37:40
Amazon 不会“传递”消息。相反,应用程序需要轮询SQS以请求消息。
因此,如果您希望将消息“推送”到您的应用程序,那么Amazon 更合适,但它不会对消息进行排队。
有些人更喜欢实现第一个选项,因为可以添加其他使用者,而不会更改现有代码或配置。新消费者只需订阅现有的Amazon主题。
但是,如果您确信永远不会有其他消费者,那么您可以直接使用Amazon队列。
https://stackoverflow.com/questions/55985255
复制相似问题