从AWS 常见问题页面 (可靠性部分)可以看出,SNS保证至少向SQS传递一次消息,但是当通知发送到Lambda时,还不清楚同样的消息是否适用。
那么,当消息被发送到AWS Lambda时,SNS是否至少提供了一次消息传递?
发布于 2017-04-06 12:22:12
同样的常见问题页面声明
当消息发布到某个主题时,Amazon将尝试将通知传递给为该主题注册的所有订阅者。由于潜在的互联网问题或电子邮件传递限制,有时通知可能无法成功到达HTTP或电子邮件端点。在HTTP情况下,可以使用SNS传递策略来控制重试模式(线性、几何、指数退避)、最大和最小重试延迟以及其他参数。如果成功处理所有已发布的消息至关重要,开发人员应该将通知传递到SQS队列(除了通过其他传输的通知)。
这适用于所有非SQS订阅者。
发布于 2018-06-13 19:43:04
如果订阅端点不可用,则Amazon消息会发生什么情况?
Lambda:如果Lambda不可用,SNS将在1秒内重试2次,然后10次以指数方式从1秒退回到20分钟,最后每20分钟重复38次,在13小时内总共尝试50次,然后从SNS中丢弃消息。
发布于 2017-04-06 18:59:04
我想你的问题是:订阅SNS主题的Lambda函数会被至少调用一次还是只对任何消息调用一次?
如果是这样,答案是:至少一次。常见问题中的以下部分帮助回答了这一点,并强调了我的部分:
问:每个订户会收到多少次信息? 虽然大多数情况下,每条消息都将准确地传递给您的应用程序一次,但Amazon的分布式特性和瞬态网络条件可能会导致订阅端偶尔出现重复消息。开发人员应该设计他们的应用程序,以便多次处理消息不会产生任何错误或不一致。
https://stackoverflow.com/questions/43250366
复制相似问题