一个订单处理 Lambda 从 Amazon SQS 队列消费消息,并将结果写入 DynamoDB 表。该 Lambda 以预留并发运行。客户报告订单历史页面显示处理状态有延迟。DevOps 工程师应采取哪些措施来诊断和解决延迟问题?(选择两项)
选择一个答案
点击一个选项来检查您的答案。
正确答案: 检查 SQS ApproximateAgeOfOldestMessage 指标并提高 Lambda 函数的并发限制。, 检查 DynamoDB WriteThrottleEvents 指标并提高表自动扩缩策略中的最大写入容量单位(WCU)。.
为什么这是答案
订单处理延迟可能由多个瓶颈引起。检查 SQS ApproximateAgeOfOldestMessage 指标可以识别消息在队列中等待处理的时间,如果该值很高,表明 Lambda 函数处理消息的速度跟不上消息的产生速度。提高 Lambda 函数的并发限制可以直接增加其处理能力,从而减少消息积压和处理延迟。检查 DynamoDB WriteThrottleEvents 指标可以判断 DynamoDB 表是否因为写入容量不足而限制了写入请求。如果该指标很高,说明写入操作被限流,导致数据写入延迟。提高表自动扩缩策略中的最大写入容量单位(WCU)可以确保 DynamoDB 有足够的写入能力来处理 Lambda 函数的写入请求,从而解决写入瓶颈。配置 SQS 重试策略(redrive policy)主要用于处理失败消息,与处理延迟关系不大。增加 SQS 队列的可见性超时(visibility timeout)主要用于防止消息被重复处理,与处理速度无关。增加 Lambda 函数的超时时间只会让函数有更多时间完成执行,但不会解决并发不足或下游服务限流导致的延迟。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡