一个无服务器票务系统生成订单ID,然后并行运行库存和支付Lambda函数。如果一个座位被意外地售出两次,则必须将该座位分配给收到的第一个订单,并且只处理该订单的付款。如果第一个订单的付款被拒绝,则第二个订单应获得该座位并处理其付款。哪种设计符合这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 将订单ID发送到Amazon SNS FIFO主题,该主题扇出到一个用于库存管理的Amazon SQS FIFO队列和另一个用于支付处理的SQS FIFO队列。.
为什么这是答案
正确答案是“将订单ID发送到Amazon SNS FIFO主题,该主题扇出到一个用于库存管理的Amazon SQS FIFO队列和另一个用于支付处理的SQS FIFO队列”。此设计利用了FIFO(先进先出)特性,确保订单处理的顺序性,从而避免座位超售。SNS FIFO主题保证消息按发送顺序发布,并传递给订阅的SQS FIFO队列。库存和支付Lambda函数从各自的SQS FIFO队列中按顺序处理消息,确保第一个订单优先处理。如果第一个订单支付失败,第二个订单才能获得座位并处理支付,这符合题目要求。 其他选项不符合要求: “更改生成订单ID的Lambda,使其调用库存Lambda,然后库存Lambda再调用支付Lambda”:这种串行调用不具备并行处理能力,且难以处理第一个订单支付失败后
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡