我有一个需求,需要Amazon SNS发送通知,直到我的应用程序(称为APP)成功收到它,但文档中说消息的最长生存期只能为1小时。
比方说APP崩溃了,并且在1小时内无法恢复。我仍然需要某种方式接收这些消息。
有多种实现方式:
1. APP从SQS轮询。我不喜欢这个选项,因为它会在APP和AWS之间产生太多网络流量。 2. SNS向APP和SQS都发送通知。如果APP能够接收到消息,它将立即从SQS中删除它。如果APP无法接收消息(崩溃),则可以在启动时从SQS加载消息并清除队列。 3. AWS Lambda代码作为消息服务。如果Lambda代码失败,则可以将消息推送到SQS死信队列,否则保持队列清洁。处理Lamba代码更新是太大的负担,如果可能的话,使用纯AWS解决此问题会很酷。
完美的解决方案将是为SNS消息设置无限超时,但看起来Amazon不支持它。
你认为哪种方法是解决这个问题的最佳方法?我有遗漏什么吗?
比方说APP崩溃了,并且在1小时内无法恢复。我仍然需要某种方式接收这些消息。
有多种实现方式:
1. APP从SQS轮询。我不喜欢这个选项,因为它会在APP和AWS之间产生太多网络流量。 2. SNS向APP和SQS都发送通知。如果APP能够接收到消息,它将立即从SQS中删除它。如果APP无法接收消息(崩溃),则可以在启动时从SQS加载消息并清除队列。 3. AWS Lambda代码作为消息服务。如果Lambda代码失败,则可以将消息推送到SQS死信队列,否则保持队列清洁。处理Lamba代码更新是太大的负担,如果可能的话,使用纯AWS解决此问题会很酷。
完美的解决方案将是为SNS消息设置无限超时,但看起来Amazon不支持它。
你认为哪种方法是解决这个问题的最佳方法?我有遗漏什么吗?