一个气象数据解决方案通过与 Lambda 函数集成的 API Gateway REST API 接收来自数千个站点的遥测数据。Lambda 调用第三方服务进行预处理;当第三方服务过载时,预处理失败,数据丢失。架构师必须确保数据不丢失,并允许在发生故障时稍后进行处理。架构师应该实施什么?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 创建两个 Amazon SQS 队列:一个主队列和一个辅助队列。将辅助队列配置为主队列的 DLQ。更改 API 集成以将消息发送到主队列,并配置一个 Lambda 函数由主队列调用。.
为什么这是答案
正确答案通过引入 SQS 队列来解耦 API Gateway 和预处理逻辑,从而确保数据持久性。当 API Gateway 直接将数据发送到主 SQS 队列时,即使下游预处理服务过载,数据也不会丢失。主队列的 DLQ(辅助队列)进一步增强了可靠性,它捕获了由于预处理失败而无法成功处理的消息,从而允许稍后重试或分析。Lambda 函数从主队列中拉取消息进行处理,这种异步模式可以平滑处理突发流量。 其他选项的不足在于: 将 SQS 队列配置为 API 的 DLQ 只能捕获 API Gateway 本身处理失败的请求,而不是下游服务处理失败的请求。 EventBridge 事件总线虽然可以解耦,但将辅助事件总线配置为 Lambda 故障目标,仍然意味着事件首先要到达 Lambda 才能触发故障处理,这不能解决第三方服务过载导致预处理失败时的数据丢失问题。 将自定义 EventBridge 事件总线配置为 Lambda 函数的故障目标,同样无法在 Lambda 之前捕获数据,不能解决上游数据丢失问题。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡