分布式系统概念与设计 分布式架构和微服务架构( 二 )


例如 。双十一活动期间 。阿里把会员相关等级 。芝麻信用计算等附加业务暂停服务 。甚至在双十一夜晚秒杀阶段 。延迟退款退花呗等逆向行为 。
→正向状态流(每种状态分别由定时任务异步处理目前状态下的后续业务):

分布式系统概念与设计 分布式架构和微服务架构

文章插图
→逆向状态(由定时任务异步处理取消订单后续业务):
分布式系统概念与设计 分布式架构和微服务架构

文章插图
6. 自动审单系统根据审单配置规则对订单金额、地址、地区、收货人 。指定会员、手机电话号码等信息进行合法性校验 。校验通过的则正常流转后续流程 。不符合规则的订单 。以及包含备注的订单转人工 。通过人工再次审核 。
7. 拆单拆单主要原因涉及店铺、品类、跨境商品、商品超重以及仓库的不同 。系统根据拆单配置规则实现对订单拆分 。
拆单一般期间节点在支付前和支付后两种情况 。拆单需要把运输费、优惠、积分分摊到正价单一商品上 。方便退款退货以及财务结算 。
同时需要考虑部分退情况 。如果存在满减、累计花费金额 。跨店铺花费等优惠限制时 。要注意是否满足部分退 。不满足 。则需要连带其他拆分子订单一起退 。否则驳回 。
8. 合单当买家编号、收货人手机电话号码、地址、姓名一致时 。系统自动合并生成新订单 。需要值得注意的是合并订单为虚拟订单 。并不是多个订单的合并生成父订单 。实质只是合并发货 。降低物流成本 。
9. 自动取消超时未支付订单实现方式如定时轮询任务 。延时消息 。当数量少时使用定时任务即可满足设计 。当数量过大时可选用延时消息 。订单生成后发延时消息 。到设置临界点时判断是否支付 。未支付则取消订单 。
10. 虚拟出库一般针对虚拟商品 。无需推送到仓库实物发货的订单 。如手机充值、购买游戏币等等系统可主动变更订单为已出库 。减少人工干预 。
11. 异常订单拦截异常订单拦截一般有别于自动审单校验 。可看作是对自动审单规则的补充加强 。如收货地址临时变更、商品破损、库存不足、部分地区管控物流限行等等 。拦截可以是系统和人工拦截两种 。
12. 订单开票开票分为纸质和电子两种 。纸质一般由仓库随发货一起开具 。电子发票则由订单发货后 。出库状态上报到OMS后 。由OMS系统调用税务平台开具蓝色发票 。退货逆向流程则开具红冲发票 。
13. 补偿机制如第三方消息队列事务消息机制 。TCC补偿方案等等 。同时需要值得注意接口设计时一定要做到幂等性 。
14. 换货换货实质是订单商品的变化 。同时也完全可以理解为新订单加退货或部分退的方式 。因此也会涉及到商品单价、优惠券、积分的重新分摊 。这也是为什么换货功能设计到OMS的原因 。换货主要包含同类商品、不同类商品之间 。以及数量的变化 。同时还会涉及到旧商品、新商品库存和应收、实收财务结算上的变化 。
15. 其他最后 。还要与日志监控、数据分析等系统配合做好预警服务防止恶意下单 。最大程度保证商家利益 。OMS作为整个电商核心系统 。在设计时需要充分分析具体涵盖的业务场景 。以及与其他系统的融合 。这样才能设计出符合自己企业的OMS系统 。
四、总结分布式场景下系统设计是一个不断摸索前进的过程 。只有对架构设计和业务解耦的粒度大小等合理构思 。才能使后续系统更具有迭代性和可扩展性 。

推荐阅读