Q3 — AWS SAA-C03 第17章

第 3/89 题 | ← 返回第17章

Q1303. 一家电商公司正在为其Web应用程序添加产品评论功能。该功能包含“提交评论”和“获取评论”两个功能。“提交评论”功能允许用户提交简短的文字评论。该功能必须能够处理数千条并发评论。“获取评论”功能将检索每个产品ID的所有评论。该功能必须具有低延迟。哪种解决方案能够满足这些要求?

正确答案: C. 创建一个 Amazon API Gateway REST API。在 API 中定义 SubmitReview 方法和 GetReview 方法。选择 AWS 作为集成类型,Amazon DynamoDB 作为服务。为 GetReview 方法启用 API 网关缓存。

解析

让我们根据处理“提交评论”功能中数千条并发评论提交以及为“获取评论”功能提供低延迟检索的要求,来分析每个选项:选项 A提交评论功能:在配备应用程序负载均衡器的自动扩展组中,将“提交评论”功能部署在 Amazon ECS 集群上,是处理可变且可能数量庞大的请求的有效方法。然而,将评论存储在 Amazon S3 存储桶中,在处理数千个并发写入操作时存在局限性。S3 专为高持久性对象存储而设计,但并未针对高吞吐量、低延迟的写入操作(例如大量并发评论提交)进行优化。获取评论功能:从 S3 存储桶查询评论可能会导致较高的延迟,尤其是在评论数量增加时。S3 并非设计用于根据产品 ID 快速检索多个相关对象的数据库。因此,此选项不符合要求。选项 B提交评论功能:使用单个 Amazon EC2 实例来处理数千个并发评论提交并非可扩展的解决方案。单个实例的资源(CPU、内存、网络带宽)有限,当面临大量并发请求时,很快就会成为瓶颈。获取评论功能:将评论存储在实例存储卷上也存在问题。实例存储卷是临时性的,这意味着当实例停止或终止时,数据将会丢失。此外,从实例存储卷查询数据并非为跨多个请求的低延迟检索而设计,尤其是在评论数量庞大的情况下。因此,此选项无法满足要求。选项C提交评论功能:创建集成 Amazon DynamoDB 的 Amazon API Gateway REST API 并引入 SubmitReview 方法是一个绝佳的选择。DynamoDB 是一款完全托管的 NoSQL 数据库服务,能够处理数千个并发写入操作。它专为横向扩展而设计,可适应高吞吐量工作负载,因此非常适合需要处理大量并发评论提交的 Submit Review 功能。获取评论功能:在与 DynamoDB 集成的 API 网关中定义 GetReview 方法,并启用该方法的 API 网关缓存,可以显著降低延迟。缓存会将频繁访问的数据存储在内存中,因此后续对同一产品评论的请求无需再次查询数据库即可快速响应。此方案既满足了“提交评论”功能的高并发要求,也满足了“获取评论”功能的低延迟要求。选项 D提交评论功能:对于这种场景,每次提交评论都使用 AWS Step Functions 是一种过于复杂的解决方案。Step Functions 更适合编排包含多个步骤和依赖关系的复杂工作流。对于简单的提交评论操作,直接与数据库交互等更直接的方法会更高效。此外,使用 AWS Lambda 函数将评论存储在 Amazon ElastiCache(Redis 开源软件)集群中进行写入操作,在成本效益和可扩展性方面可能不如使用 DynamoDB 处理高容量并发写入。获取评论功能:虽然查询 ElastiCache 集群可以提供低延迟检索,但就提交审核功能而言,该选项的整体方法不如选项 C 理想。因此,该选项不如选项 C 能满足要求。因此,满足要求的方案是选项 C。