Q51 — AWS SAA-C03 第1章
第 51/65 题 | ← 返回第1章
Q51.一家公司拥有一个异步 API,用于接收使用请求,并根据请求类型将请求分派到适当的微服务进行处理.该公司正在使用 Amazon API Gateway 部署 API 前端,并使用 AWS Lambda 函数调用 Amazon DynamoDB 来存储用户请求,然后再将它们分派到处理微服务.该公司在其预算允许的范围内配置了尽可能多的 DynamoDB 吞吐量,但该公司仍然遇到可用性问题并且正在丢失用户请求.解决方案架构师应该如何在不影响现有用户的情况下解决此问题?
- A. 使用服务器端限制在 API 网关上添加限制
- B. 使用 DynamoDB Accelerator (DAX) 和 LamDda 缓冲写入 DynamoDB
- C. 在 DynamoDB 中为带有用户请求的标签创建二级索引.
- D. 使用 Amazon Simple Queue Service (Amazon SQS) 队列和 Lambda 缓冲写入 DynamoDB. ✓
正确答案: D. 使用 Amazon Simple Queue Service (Amazon SQS) 队列和 Lambda 缓冲写入 DynamoDB.
解析
为了解决可用性问题并防止给定场景中的用户请求丢失,解决方案架构师应该选择选项D:使用Amazon Simple Queue Service (Amazon SQS)队列和Lambda缓冲对DynamoDB的写操作。 以下是这个解决方案的帮助: 1. Amazon Simple Queue Service (Amazon SQS): SQS是一个完全托管的消息队列服务,它将用户请求的摄取与处理微服务解耦。它充当缓冲区,在处理请求之前存储请求,提供可靠且可扩展的消息队列。 2. AWS Lambda:使用Lambda处理来自SQS队列的消息。只要队列中有新消息可用,就可以自动触发Lambda函数,从而实现与现有体系结构的无缝集成。 通过实施该解决方案,公司获得以下好处: -提高可用性:通过使用SQS缓冲对DynamoDB的写操作,公司可以处理突发负载并平滑请求率的峰值。这减少了可用性问题的可能性,并防止了用户请求的丢失。 —可扩展性:SQS提供自动扩展和高可靠性,确保即使在高峰时段也能可靠地存储和处理请求。它解耦了摄取和处理组件,允许它们独立扩展。 —容错:如果正在处理的微服务暂时不可用,请求将被安全地存储在SQS队列中,直到它们可以被处理。这确保了不会丢失请求,并且按照收到请求的顺序处理请求。 选项A建议在API网关上添加带有服务器端节流限制的节流。虽然这有助于控制请求率,但它不能解决可用性和潜在的用户请求丢失的潜在问题。 选项B建议使用DynamoDB Accelerator (DAX)和Lambda来缓冲对DynamoDB的写入。虽然DAX可以提高DynamoDB的读性能,但它不能解决可用性问题或防止用户请求丢失。 选项C建议在DynamoDB中为带有用户请求的标签创建二级索引。虽然二级索引可以提高查询性能,但它们不能直接解决可用性问题或防止用户请求丢失。