gpt4 book ai didi

amazon-web-services - AWS SNS 消息生命周期

转载 作者:行者123 更新时间:2023-12-04 15:08:14 25 4
gpt4 key购买 nike

我有一个用例,我需要 Amazon SNS 发送通知,直到我的应用程序(我们称之为 APP)成功收到它,但文档说消息的最长生命周期可以是 1 小时。

假设 APP 崩溃了,不可能在 1 小时内让它上线。我仍然需要以某种方式接收这些消息。

有多种实现方式:

  • 来自 SQS 的 APP 民意调查。我不喜欢这个选项,因为它在 APP 和 AWS 之间产生了太多的网络流量。
  • SNS 向两者发送通知:APP 和 SQS。如果 APP 能够接收到该消息,它将立即将其从 SQS 中删除。如果 APP 无法接收消息(崩溃),它可以在启动时从 SQS 加载消息并清理队列。
  • AWS Lambda 代码作为消息传递服务。如果 Lambda 代码失败,它可以将消息推送到 SQS 死信队列,否则保持队列干净。处理 Lamba 代码更新的开销太大,如果可能的话,用纯 AWS 解决这个问题会很酷。

  • 完美的解决方案是为 SNS 消息设置无限超时,但亚马逊似乎不支持它。

    您认为解决这个问题的最佳方案是什么?我错过了什么吗?

    最佳答案

    一种选择可能是让 SNS 将消息传送到调用您的应用程序的 Lambda。如果 Lambda 无法将消息传送到您的应用程序,则失败,以便 SNS 重试 Lambda。然后,您可以使用死信队列 (SQS) 配置您的 Lambda,以便如果失败次数过多,消息将进入队列。最后,您可以按计划运行另一个 Lambda,以检查死信队列并重试 Lambda 调用。如果失败,它只会继续将消息放回死信队列。

    这样,如果您的应用可用,消息将立即传递。如果该应用程序不可用,那么它将稍后重试交付。

    关于amazon-web-services - AWS SNS 消息生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631443/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com