一家公司运行一个三层 Web 应用程序来处理客户订单。Web 层使用 Application Load Balancer 后面的 Amazon EC2 实例。处理层使用 EC2 实例。该公司使用 Amazon Simple Queue Service (Amazon SQS) 解耦了 Web 层和处理层。存储层是 Amazon DynamoDB。在高峰时段,一些用户报告订单处理延迟。在这些延迟期间,EC2 实例的 CPU 占用率达到 100%,并且 SQS 队列积压。高峰时段是可变的且不可预测的。该公司需要提高应用程序性能。哪种解决方案符合这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 使用 Amazon EC2 Auto Scaling 目标跟踪策略来横向扩容处理层实例。使用 ApproximateNumberOfMessages 属性来确定何时扩缩。.
为什么这是答案
正确答案是使用 Amazon EC2 Auto Scaling 目标跟踪策略来横向扩容处理层实例,并使用 ApproximateNumberOfMessages 属性来确定何时扩缩。当 SQS 队列积压时,表明处理层无法及时处理消息,导致订单处理延迟。通过将 Auto Scaling 策略与 SQS 队列的 ApproximateNumberOfMessages 指标关联,可以根据队列中的消息数量自动调整处理层实例的数量,确保有足够的容量来处理传入的订单,从而解决延迟问题。 其他选项不正确: 计划扩缩不适合不可预测的高峰时段,因为无法准确预设扩缩时间。 在 DynamoDB 前使用 ElastiCache for Redis 可以提高数据库读取性能,但不能解决处理层处理能力不足和 SQS 队列积压的问题。 添加 CloudFront 分配可以缓存 Web 层响应,提高 Web 层性能,但对处理层和 SQS 队列的积压问题没有直接影响。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡