编辑导语:OMS即订单管理用户中心 。可以看作是电商系统的核心 。其需求要具备的功能包括汇集数据、分发、跟踪汇总等等 。那么 。如何依据实际业务场景、搭建一个可支撑的、稳固强大的OMS系统?本文作者针对分布式场景下的OMS系统设计做了总结 。一起来看一下 。
文章插图
一、OMS所处位置通常咱们所谈论的网上购物为狭义电商 。属于广义电商的一种 。即以电子化手段进行商品交易的一种行为 。
狭义电商简单可以描述为货、款、以及货与款的关系 。一样 。转化为电商系统主要核心模块可以分为WMS仓储系统、FMS财务系统、OMS订单系统 。
文章插图
在电商的三大核心模块中OMS订单系统又可以看作核心中的核心 。所有系统以围绕着订单模块进行构建 。如果整个电商系统比作人体器官 。那么OMS当之无愧可以比作人的心脏 。所以OMS系统设计的好坏 。直接影响着其他系统的构建 。
文章插图
【分布式系统概念与设计 分布式架构和微服务架构】二、OMS作用OMS系统承上启下处在电商系统业务链的中游 。通过各个平台聚集到OMS的订单 。系统通过会员信息、收货信息、优惠信息、商品、积分、支付等条件对订单提供后续处理 。如合单、拆单、第三方推送、分发仓库、通知扣减积分 。库存、创建退款 。退货申请单等操作 。同时具备从其他系统上报收集追踪订单变化 。如出库、物流信息 。并对其他系统运营分析提供数据支撑 。
可见OMS系统要具备数据超快聚集、加工、分发、跟踪汇总的能力 。
三、OMS设计知道了OMS所处位置和作用 。下一步谈谈如何设计一个稳健的、可持续性的OMS系统 。
咱们知道建设大楼 。会考虑地基、主体结构、周围环境、承载以及抗震能力等各种因素 。系统搭建也一样 。对达到什么样的预期目标也需早一点做出制定 。制定的要求越高 。设计考虑的因素就越多 。
1. 订单相关表字段
文章插图
2. 前后端数据读写分离根据客户群体的特点 。前后端数据库主从读写分离、应用服务分开灵活部署 。主数据库处理相关业务事务 。大量的盘查转移到从数据库 。一是减轻主数据库的压力 。二是前后端物理隔离一方宕机可降低对另一方作业的影响 。
文章插图
BDMS 业务+数据(中台)库与OMS 订单库特点对比:
文章插图
3. 分表归档根据C端客户特性盘查订单以会员维度区分 。所以缓解前端访问数据压力 。分表设计是个不错的选择 。遵从订单号1024取模方式 。会员编号尾号数字1位 。2位取模方式等等 。
文章插图
4. 业务解耦架构从单体、三层、再到分布式微服务的变化 。业务边界也从领域驱动建模开始制定到最终分而治之 。各得其所 。各个分拆模块更具独立性和可扩展性 。所以设计时其他业务模块数据不应混到单独某一业务模块中 。数据交换传递统一通过服务接口形式获取 。这也体现了分布式系统一切皆服务的思想 。
业务拆分后的三大模块主要变化期间轴:
文章插图
从客户角度分析 。C端客户界面可操作性较低 。要求简洁、直观、易懂 。如会员中心订单tab分类:查看全部、待付钱、待发货、待收货、待评价、退款/售后 。
文章插图
上图分类由两种或三种业务状态的组合而成 。如下图为后端订单和支付状态值组合到前端状态值以及显示的算法 。
文章插图
其中 。会员中心的退款/售后为逆向状态 。可与其他tab正向状态区分开 。
5. 缩短业务链OMS系统主线是从建立订单开始为仓库提供发货依据到配送完成 。最终实现可预知的业务闭环 。
文章插图
其他事务如推送第三方商户、扣减库存、创建应收、释放积分 。库存、退回优惠券 。创建退款申请单等事务 。可归纳到分支 。实现可控的由订单状态流转异步创建单据和事件进行处理 。一是缩短业务链长度可使系统更具稳定和强健性 。二是可根据活动、秒杀情况控制分支事务处理频次 。使资源更加好的集中到业务主线上 。
推荐阅读
- 你身边有没有人,对自己外甥女外甥或侄子侄女,比对自己孩子好的?说说都什么心理?
- 男人有钱了都会出轨吗?
- 余额宝10万一天多少钱 每天才7元利息
- 淘宝的新店真的很难做起来吗?
- 资本家和企业家的区别是什么?为何要弘扬企业家精神?
- 好看的职场小说排行 好看的小说言情现代
- 店铺等级在一钻以下的淘宝店,订单转化上真的要差很多吗?
- 映山红老桩怎么栽 映山红老桩的栽培方法
- 请问:63年出生的人特别多,而61年出生的人特别少,为什么?