为了防止下游 RDS 数据库不可用(例如,已关闭)时 SNS 通知消息丢失,哪些更改可以防止消息丢失?(选择两项。)
选择一个答案
点击一个选项来检查您的答案。
正确答案: 为 SNS 主题配置 Amazon SQS 死信队列。, 将 Amazon SQS 队列订阅到 SNS 主题,并让 Lambda 函数处理来自该 SQS 队列的消息。.
为什么这是答案
当 RDS 数据库不可用时,直接将 SNS 通知发送到 Lambda 函数可能会导致消息丢失,因为 Lambda 可能无法成功处理或存储这些消息。 配置 Amazon SQS 死信队列(DLQ)可以确保任何未能成功发送或处理的消息都会被存储在 SQS 队列中,以便后续检查和重试,从而防止消息丢失。 将 Amazon SQS 队列订阅到 SNS 主题,并让 Lambda 函数处理来自该 SQS 队列的消息,是另一种有效方法。SQS 队列可以持久存储 SNS 消息,即使 Lambda 函数暂时不可用,消息也不会丢失。当 Lambda 恢复正常时,它可以从 SQS 队列中拉取并处理这些消息。 用 DynamoDB 替换 RDS 或使用 EventBridge 都不能直接解决 SNS 消息在下游服务不可用时丢失的问题。DynamoDB 是一种数据库,EventBridge 是事件总线,它们不提供 SQS 队列那样的消息持久性和重试机制来防止因下游服务故障导致的消息丢失。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡