背景与目标
- 商城下单后,采购员采购并经供应商发货至仓库,再由仓库完成全球转运;系统需支持多仓库、多货物管理,覆盖入库 / 出库 / 库存的完整作业流程。
我的职责
- 基于 Nacos + OpenFeign 实现微服务间调用:创建入库单 / 发货单、库存冻结与解冻、退货单回传、异常处理等。
- 用 RocketMQ 异步收发消息生成入库单,实现上下游解耦,增强系统稳定性与健壮性。
- 在 SKU 维度加 Redisson 分布式锁与幂等校验,控制库存变更(冻结 / 解冻 / 加减)与批量操作(发货 / 移库 / 上架)的并发。
- 用 PowerJob 工作流 + RocketMQ 重试机制做重试补偿,达失败上限即监控告警、通知人工介入,保证事务一致性。
- 用策略模式 + 模板方法模式对接多家货代公司 API(物流单号获取、轨迹更新、发票制作与下载),统一逻辑、大幅减少冗余代码。
关键结果
- Nacos + OpenFeign 打通采购 / 订单 / 仓库微服务全链路(入库、发货、库存冻结解冻、退货回传)
- RocketMQ 异步生成入库单实现上下游解耦,避免上游采购异常拖垮仓库运转
- SKU 维度 Redisson 分布式锁 + 幂等校验,解决库存变更与批量操作的并发安全
亮点与难点
- 策略模式 + 模板方法模式抽象多货代对接,新增货代仅需扩展子类。
- PowerJob + MQ 重试补偿 + 告警,保障跨服务事务最终一致。
技术栈
Spring CloudRocketMQMySQLNacosMyBatisRedissonPowerJob