亚马逊SES消息到SNS和SQS优化

我正在使用Amazon SES作为项目,并已设置收据规则以将邮件从SES发送到SNS。 SNS将我的API端点作为订阅者,但为了确保我不会错过任何消息,我还设置了SQS队列并订阅了SNS主题的队列。

有了这个设置,我收到每封SES电子邮件两次。 (一个来自SNS,另一个来自SQS的调查)。 是否有办法只发送失败的SNS消息到SQS队列,以便我不必总是检查重复项?

将SES消息发送到SNS的规则: 将SES消息发送到SNS的规则

SQS队列订阅SNS主题: SQS队列订阅SNS主题


简短的回答,没有。

如果您已将SQS队列订阅到SNS主题,则会收到发布到后者的所有消息。 SNS不知道你的API成功处理了哪些消息,因此不能有选择地发送给SQS。


用你的设置,这是不可能的。 但还有其他方法可以尝试。 它可能会给你的应用程序带来复杂性,但值得尝试。 下面给出了一些方法。

  • SES发送到SNS,并将所有来自SNS的消息发送到SQS,并为消息轮询SQS。 如果有一些失败,将它们放入Deadletterqueue(类似于SQS),并且不时地单独轮询该队列,以查找失败的消息。 这使得消息更持久,但由于轮询而效率稍低。

  • SES到SNS,让SNS根据需要使用它的传送策略。 您可以避免SQS,并要求SNS查找交付状态 ,如果发生故障,请重试。 您可以根据需要定义重试策略,并在此链接中给出它。 经过大量尝试后,该消息可能会被彻底抛弃。 您也可以在AWS CloudWatch Logs上写入重试状态。

  • 链接地址: http://www.djcxy.com/p/32143.html

    上一篇: Amazon SES messages to SNS and SQS optimization

    下一篇: Amazon SNS sending notification for each verified SES domain