一家公司使用 GPS 追踪器来记录数千只海龟的迁徙模式。追踪器每 5 分钟检查一次,如果海龟移动了超过 100 码(91.4 米),它们就会将新坐标发送到运行在单个 AWS 区域中跨多个可用区的三个 Amazon EC2 实例上的 Web 应用程序。最近,Web 应用程序被意外的追踪器数据量淹没,导致数据丢失,并且无法重放事件。解决方案架构师必须以最少的操作开销来防止这种情况再次发生。解决方案架构师应该怎么做?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 创建一个 Amazon Simple Queue Service (Amazon SQS) 队列来存储传入数据。配置应用程序以轮询新消息进行处理。.
为什么这是答案
此方案面临突发流量高峰导致数据丢失的问题,需要解耦应用程序并实现异步处理。Amazon SQS 队列是理想选择,因为它能缓冲大量传入消息,即使应用程序暂时无法处理,数据也不会丢失。应用程序可以按自己的节奏从队列中拉取消息进行处理,从而平滑处理负载峰值,并提供消息持久性以防止数据丢失和支持重放。 其他选项的不足: Amazon S3 存储桶主要用于对象存储,不适合作为实时消息队列。应用程序扫描 S3 存储桶以获取新数据效率低下且复杂。 Amazon API Gateway 与 AWS Lambda 结合可以处理并发请求,但如果 Lambda 处理速度跟不上,仍然可能导致 API Gateway 拒绝请求或超时,无法提供 SQS 那样的消息缓冲和持久性。 Amazon DynamoDB 表是 NoSQL 数据库,适合存储结构化数据,但直接将它用作消息队列会增加应用程序的复杂性,需要额外的逻辑来管理消息状态和处理并发写入,且查询新数据进行处理不如 SQS 的轮询机制高效。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡