订单“延时取消”你会怎么实现?请至少给出 2 种实现方案。
How would you implement delayed order cancellation? Provide at least two designs.
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: IBM Interview, Technical
标签: Delayed Job, Order System
目标公司: IBM
参考答案摘要
答案 方案 1:消息队列延时消息/死信队列(RabbitMQ DLX、RocketMQ 延时等):下单后投递延时消息,到期触发取消。优点解耦、可扩展;缺点依赖 MQ 能力与幂等处理。 方案 2:定时任务扫描(DB 状态 + 到期时间):周期性查找超时订单并取消。优点简单;缺点对 DB 压力大、延迟粒度受限。 方案 3:时间轮/延时队列(如 Redis ZSET + 消费者轮询):控制精度与吞吐。 ...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。