AWS SQS可以通过哪种方式调用我的REST API?基本上,一旦将消息推送到AWS SQS,我想听到它并执行所需的操作。我可以安排一个侦听器,它可以每秒提取消息,但这不会是一个优化解决方案,而且队列可能是空的(有时)。AWS SQS:是SQS给我打电话给消费者的一种方式,每当消息被推送时
在此先感谢!
AWS SQS可以通过哪种方式调用我的REST API?基本上,一旦将消息推送到AWS SQS,我想听到它并执行所需的操作。我可以安排一个侦听器,它可以每秒提取消息,但这不会是一个优化解决方案,而且队列可能是空的(有时)。AWS SQS:是SQS给我打电话给消费者的一种方式,每当消息被推送时
在此先感谢!
一对夫妇的想法:
使用发布/订阅
考虑使用与SNS/SQS发行者 - 订阅模式,使您发布一条消息,SNS,并通过SQS订阅它。如果您绝对需要在发布消息时处理消息,则可以发布到SNS并除SQS订阅(例如调用Rest API的lambda subscriber)之外设置另一个消费者来处理它。
SQS长轮询
关于SQS,这听起来像你会从长轮询中受益。从文档:
从文档长轮询有助于减少 (空响应的数量减少你使用Amazon SQS的费用时,有没有提供给回复发送到亚马逊SQS 一个ReceiveMessage请求 返回消息队列),并消除错误空应答(当消息是 在队列中可用的但不包括在响应):
- 长轮询通过允许亚马逊 减少的空响应的数量SQS等到消息在曲中可用eue在发送 响应之前。除非连接超时,否则对ReceiveMessage请求的响应至少包含一个可用的 消息,最多包含 ReceiveMessage操作中指定的最大消息数。
- 长查询通过查询所有(而不是有限数量)的服务器消除虚假的空响应。
- 只要有任何消息可用,长轮询就会返回消息。
另外,以编程方式启用长轮询,使用下列任何这些SQS操作:
参考:
听起来像是你将用很多替代SQS SNS的更好。你正在试图获得SQS做,SNS的目的是要做到:
您可以使用Amazon SNS通知消息发送给一个或多个 HTTP或HTTPS端点。当您向某个主题订阅端点时,您可以发布通知到该主题,Amazon SNS会发送一个 HTTP POST请求,将通知内容传递给 订阅端点。订阅端点时,您选择 无论Amazon SNS使用HTTP还是HTTPS将POST请求发送到端点 。如果使用HTTPS,那么你可以采取的支持 在亚马逊SNS以下的优点...
http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html