
1) 【一句话结论】采用微服务架构+事件驱动+消息队列(如Kafka)+最终一致性方案,实现订单-库存实时协同与代工厂库存共享。
2) 【原理/概念讲解】老师口吻,先拆解核心概念:
3) 【对比与适用场景】
| 特性 | Kafka | RabbitMQ | 适用场景 |
|---|---|---|---|
| 优点 | 高吞吐、持久化、多消费者 | 易用、轻量、工作模式 | 大规模、高吞吐的订单-库存场景(如卫龙高并发订单) |
| 注意点 | 需维护消费者组、分区 | 需手动管理消息确认 | 小规模、简单异步通信(如内部服务间通知) |
4) 【示例】
订单创建流程(伪代码):
/api/orders,请求体包含order_id=1001, product_id=101, quantity=2。topic:order-created,消息体{"order_id": "1001", "product_id": "101", "quantity": 2}。def consume_order_created(event):
order_id = event['order_id']
product_id = event['product_id']
quantity = event['quantity']
total_stock = get_total_stock(product_id) # 调用工厂服务查询代工厂库存
if total_stock >= quantity:
deduct_stock(product_id, quantity) # 扣减库存
publish_success_message(order_id, product_id, quantity) # 发布成功事件
else:
publish_failure_message(order_id, product_id, quantity) # 发布失败事件
5) 【面试口播版答案】
面试官您好,针对卫龙订单与库存协同系统,我的设计思路是采用**微服务架构+事件驱动+消息队列(Kafka)**实现实时协同与代工厂库存共享。首先拆分服务:订单服务(处理电商平台订单)、库存服务(管理工厂/仓库库存)、工厂服务(代工厂库存共享)、消息队列服务(Kafka)。订单创建时,订单服务发布“订单创建”事件,库存服务订阅后扣减库存(工厂+仓库+代工厂),通过消息队列解耦,确保实时性。异常处理方面,采用幂等性(通过订单ID避免重复扣减)、重试机制(消息消费失败后重试)和补偿事务(扣减失败后恢复库存)。核心是保证订单生成后库存实时同步,支持代工厂库存共享,提升订单处理效率和库存准确性。
6) 【追问清单】
7) 【常见坑/雷区】