一个视频处理管道使用Auto Scaling组中的EC2实例来处理来自SQS队列的视频。每个视频大约需要30分钟来处理。SQS队列有一个重定向策略(redrive policy),指向一个maxReceiveCount设置为1的死信队列(dead-letter queue)。队列的可见性超时(visibility timeout)为1小时。当消息到达死信队列时,CloudWatch告警会通知团队。每天有几次,消息会出现在DLQ中,并且视频未被处理。应用程序日志没有显示错误。什么改变可以防止这个问题?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 在实例处理视频时为其启用缩减保护(scale-in protection)。.
为什么这是答案
正确答案是当实例处理视频时为其启用缩减保护。 解释: 视频处理需要30分钟,而SQS队列的可见性超时为1小时,这本身不是问题。问题在于,如果Auto Scaling组在实例处理视频期间缩减(scale-in),实例可能会被终止,导致视频处理中断,消息最终进入死信队列(DLQ)。启用缩减保护可以防止Auto Scaling组在实例正在处理工作负载时终止该实例,从而确保视频处理完成。 其他选项: 启用终止保护:终止保护是为了防止手动终止实例,而不是防止Auto Scaling组的自动缩减。 将SQS队列的可见性超时增加到3小时:虽然这会给实例更多时间来处理消息,但如果实例在处理完成前被终止,消息仍然会回到队列并最终进入DLQ。 通过将maxReceiveCount设置为0来更改重定向策略:将maxReceiveCount设置为0意味着消息在第一次接收后就会立即进入DLQ,这会加剧问题而不是解决它。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡