简单题,但是是一个陷阱题。
那如果你要是秒杀系统是捏出来的项目经验,或者是面试官凭空考察你秒杀系统,你就容易被这个问题问倒。
如果你没做过秒杀,你可能不知道这个细节,那就是在用户拿到预扣库存成功的响应之后,订单都还没建好。所以如果你回答用订单 ID,那么你就要解释你这个订单 ID 从哪里来。
因此从实践中来说,一般会有一个参加秒杀活动的 key,后面轮询其实是用这个 key 来轮询的。而这个 key 究竟从哪里来,可以是:
后端生成的过程如图:
完整内容需要VIP会员权限
轮询的时候,主要是使用一个代表参加秒杀的 key 来。
而这个 key 主要是从哪里来,那么不同的系统有不同的设计。
第一种做法就是从前端来,即发起秒杀请求的时候,会有一个代表这个请求的 key,后续诸如幂等、轮询等都是使用这个 key 的。
不管前端还是后端,总要有人搞个key
key和order_sn的关系