在ttl过期后将队列项弹出到sns中



我想使用SQS和SNS实现以下架构:

  1. 将消息延迟推送到SQS队列
  2. 一旦消息延迟(ttl)过期,使用SNS通知所有订户

我知道如何做第一个(实用)部分,但不确定如何将SQS与SNS集成。或者在这种情况下应该应用其他架构?

虽然您可以将消息推送到SQS延迟队列(延迟最多15分钟),但您仍然需要应用程序将消息从队列中取出并将其发布到您的SNS主题。据我所知,SQS/SNS并没有内置这种功能。或者您可以简单地保留消息,然后在一段时间后将其直接发布到SNS主题,但这样您就无法从SQS的持久性中获益。

**请注意,有一个fanout特性,您可以在其中发布到SNS主题并订阅该主题的多个SQS队列,以便每个订阅的队列接收消息的副本以进行独立处理。这不是你的案子,但无论如何都值得了解。

如果其他的设计模式适合的话,你可能需要扩展一下你在这里尝试构建的东西。

最新更新