AWS SAA 题库
点击卡片任意位置翻面查看正确答案与解析,也可以用键盘 ← → 切换题目。
一个公司拥有一个电子商务结账工作流,将订单写入数据库并调用服务来处理支付。用户在结账过程中遇到超时问题。当用户重新提交结账表单时,会为相同期望的交易创建多个唯一订单。 解决方案架构师应该如何重构这个工作流以防止创建多个订单?
解析
在这种情况下,最适合的选择是 D。将订单存储在数据库中,然后将包含订单号的消息发送到 Amazon SQS FIFO 队列。支付服务可以按顺序处理这些订单消息。FIFO 队列确保按顺序处理消息,防止重复订单的创建。支付服务接收消息后,处理订单并删除消息,确保每个订单只会被处理一次,解决了重复订单的问题。
AI 解析
该题核心在于实现消息处理的幂等性,防止网络超时引发的重复提交。Amazon SQS FIFO队列通过消息去重ID(基于订单号)和严格一次处理机制,确保同一订单号的消息仅被消费一次。数据库存储订单后发送队列消息,支付服务处理时自动过滤重复请求,处理完成后删除队列消息,从系统设计层面消除重复订单的产生可能。其他方案或缺少消息去重机制(如Kinesis、SNS),或未直接关联订单处理流程(如CloudTrail)。