单选题第7章 软硬件系统集成2 / 4
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第7章 软硬件系统集成
创建订单接口超时后自动重试,怎样避免同一请求生成两笔订单?
4 道章节练习题
答案与解析
正确答案 A
同一次业务操作在重试时应复用同一个幂等键。服务端第一次处理后保存该键与结果,后续收到相同键时返回原结果,而不是再次创建订单;数据库业务唯一约束可以进一步防止并发情况下的重复写入。
先把网络超时和业务失败分开。客户端没收到回包时,服务端可能成功、失败,也可能还在处理。此时盲目再创一单最危险。让第一次和重试带同一个业务身份证,服务端见过就返回上次结果,才是稳妥做法。
选项分析
- A
- 正确,幂等键识别同一业务操作,唯一约束用于应对并发穿透等边界情况。
- B
- 无限等待会占用资源,也不能解决连接中断和未知结果问题。
- C
- 每次生成新订单号会把重试伪装成新业务,正好放大重复订单风险。
- D
- 前端防抖只能减少人工连点,无法阻止网关、客户端或消息系统的自动重试。
容易混淆的地方
很多接口问题被归因于“用户点了两次”,实际重复更常来自超时重试、消息重复投递或并发请求。只修页面按钮,服务端仍然没有业务级防重能力。
再巩固一步
- 用支付、下单、创建工单三个场景分别思考重复执行的后果
- 答接口案例题时把超时、重试、幂等、唯一约束和结果查询连成闭环
原创高频场景题查看完整题目与详解