我们正在使用具有多个SQS队列订阅者的SNS主题实施AWS扇出模式。我想知道如果我成功地在SNS主题上发布消息会发生什么,但是由于某种原因它无法将其转发到队列中。 SNS会重试,如果有的话,有没有办法控制它。
我发现此页面http://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html涉及为SNS HTTP / HTTPS端点配置重试策略,但SQS上没有任何内容。
答案 0 :(得分:7)
我是SNS开发团队的成员。对于SQS交付,SNS将在放弃之前重试数千次。除了灾难性的多日中断外,SQS的消息传递得到保证。
答案 1 :(得分:3)
SQS和SNS是2013年和2014年的一支团队,当时我是该团队的开发人员。正如George Lin指出的那样,负责交付的SNS后端会为SQS队列重试数千次(确切的数量是100,000次但可能已经改变)。存在隐含的退避政策。在第一次尝试中,将在非常紧密的循环中进行几千次重试,没有延迟。如果失败了,那么随着时间的推移逐渐尝试交付的政策就会退出。一般来说,向SQS端点的交付很少会失败。
答案 2 :(得分:2)
AWS保证向SQS发送,因此您无需担心:
问:Amazon SNS会保证邮件会传递到订阅的终端吗?
当消息发布到主题时,Amazon SNS将尝试 向所有为该主题注册的订户发送通知。 由于潜在的互联网问题或电子邮件传递限制, 有时,通知可能无法成功到达HTTP或电子邮件 终点。在HTTP的情况下,可以使用SNS传递策略 控制重试模式(线性,几何,指数退避), 最大和最小重试延迟以及其他参数。 如果是的话 关键是要成功处理所有已发布的消息, 开发人员应该将通知发送到SQS队列 (in 除了通过其他传输的通知)。
答案 3 :(得分:2)