商城库存系统中心架构设计与实践案例嵌入式技术

本文将介绍vivo商城库存系统架构设计经验以及一些问题的解决方案。

二、系统架构设计

2.1vivo大电商库存架构

根据vivo大电商的销售渠道与业务场景可以将库存业务架构分为3个层级:仓库层、调度层以及销售层。

仓库层对应实体仓库,包括自营仓库、顺丰仓等第三方仓库以及WMS系统、ERP系统等;调度层负责库存调度与订单发货管理;销售层包含多个服务终端,vivo官方商城、vivo门店、第三方电商分销渠道等。其分层结构如图所示:

本文探讨的vivo官方商城库存架构设计,从整个vivo大电商库存架构来看,vivo官方商城库存系统涉及销售层内部架构以及销售层与调度层的交互。

2.2商城库存系统架构演变

早期商城的库存冗余在各业务系统中,如可售库存在商品系统、活动库存在营销系统等,库存流转也只有扣减与释放,无法针对库存进行整合与业务创新,存在诸多限制:

不能进行精细化管理,库存未分层,无法针对实物库存、分仓策略、活动库存进行精细化管理。

没有分仓策略,无法提前获取商品收发地址,物流时效无法估算。

无法针对地区、商品等进行发货管控。

实时性差,无法及时同步实物库存以及分仓策略。

性能弱,与其他系统耦合大,不能灵活扩展。

三、系统业务架构

3.1库存类型&分仓管理

3.1.1库存类型结构

库存系统一共包含4类库存:可售库存、实物库存、预占库存、活动库存。

可售库存:运营配置的普通商品库存,商品维度到SKU。

实物库存:由仓储系统同步到库存系统的实物库存,细化到具体仓库。

预占库存:用户下单完成库存预占,仓储系统发货后释放预占库存,预占库存可以监控已下单未发货库存量。

活动库存:用于秒杀、抢购等各类营销活动的商品库存。

基于不同类型库存,可以构建一个简单的库存分层体系:

3.1.2分仓管理

仓库信息:仓库基础信息,包括仓库地址、类型、编码等。

分仓策略:仓库功能信息,仓库可发货区域、无实物库存后的备选仓库;订单根据收货地址对应优先发货的仓库,争取尽快发货尽早到货。

仓库库存:仓库实物库存,由仓库调度系统同步到商城库存系统。

3.2商城库存流转方案

商品库存流转涉及两个主要操作:正向库存扣减、逆向库存回退,整套库存变更流程如下:

3.2.1正向库存扣减流程

对于库存扣减,目前常见有两种库存扣减方案:

(1)下单时扣库存。

优点是:实时扣库存,避免付款时因库存不足而阻断影响用户体验。

(2)支付时扣库存。

优点是:不受恶意下单影响。

缺点是:当支付订单数大于实际库存,会阻断部分用户支付,影响购物体验。比如说只有100台手机,但可能下了1000个订单,但有900个订单在支付时无法购买。

从用户体验考虑,我们采用的是下单时扣库存+回退这种方案。

3.2.2逆向库存回退流程

库存回退基于库存变更日志逐个回退。

库存回退基本流程:订单出库前用户申请退款,回退可售库存、回退预占库存、软删除扣减日志、增加回退日志;一旦商品出库,用户申请退货走处理机流程,可售库存和实物库存均不回退。

3.3精细化发货管控

库存系统还提供了一系列定制辅助功能:分仓策略、发货限制、物流时效等等。

(1)分仓策略

为了给用户更快的发货,我们采用的是分仓策略,即由最近的仓库(存在优先级)给用户发货;同时存在备选仓库,当所有仓库无实物库存时可走备选仓库。

3.3.1发货限制

地区限制:根据收货地址批量设置部分区域无法发货等规则,粒度到省市区维度。

3.3.2物流时效预估

四、系统架构技术要点

4.1库存扣减防重

订单重复提交会导致库存重复扣减,比如用户误提交、系统超时重试等,针对此类问题有如下常见解决方案:

订单提交按钮单击置灰,避免重复提交。

保证库存扣减接口的幂等性。

采用令牌机制。用户提交订单会进行令牌校验,校验通过才能提交订单。

注:这种方案保证每次提交的订单是唯一的,如果用户多次下单,那么会产生多个订单。

本系统采用的是保证接口幂等性的方案。

在库存扣减接口入参中增加订单序列号作为唯一标识,库存扣减时增加一条扣减日志。当接口重复请求时,会优先校验是否已经存在扣减记录,如果已存在则直接返回,避免重复扣减问题,具体流程如下:

4.2防超卖与高并发扣减方案

4.2.1常规渠道防超卖方案

常规下单渠道流量小且对超卖风险厌恶度极高,常用的防超卖方案有:

方案一:

直接数据库扣减。通过sql判断剩余库存是否大于等于待扣库存,满足则扣减库存。该方案利用乐观锁原理即update的排他性确保事务性,避免超卖。

伪代码sql:

该方案的优点是:

实库实扣,不会出现超卖;

数据库乐观锁保证并发扣减一致性;

数据库事务保证批量扣减正常回滚。

该方案的缺点是:

行级锁的原因存在性能瓶颈,高并发会出现请求堵塞超时问题;

直连数据库,每次扣库存都是写操作,接口性能较低。

方案二:

利用分布式锁,强制串行化扣减同一商品库存。

减轻数据库压力,同时还能确保不会超卖。

每次只能有一个请求抢占锁,不能应对高并发场景。

对于常规渠道,库存扣减是后置逻辑,流量不高,我们采用的是直接数据库扣减,且针对弊端做了一些措施:

前置校验严格,同时针对刷单场景会有严格限流,保证最终扣减库存的流量可控;

库存系统读写分离,减少数据库的压力。

4.2.2高并发库存扣减方案

针对高并发库存扣减,比如秒杀,一般采用的是缓存扣减库存的方式(redis+lua脚本实现单线程库存更新)作为前置流程,代替数据库直接更新。

在redis中扣减库存虽然性能高,可以大大减轻数据库压力,但需要保证缓存数据能完整、正确的入库,以保证最终一致性。

针对缓存数据更新至数据库,目前主流方案有两种:

方案一:Redis数据直接异步更新至数据库。

优点:简单、没有复杂的流程。

缺陷:redis宕机或者故障,可能会造成缓存内库存数据的丢失。

方案二:Redis扣减库存时,同步在业务数据中insert库存信息。

这里大家可能会有两个疑问:

有数据库的插入操作,性能怎么保证?

有数据库的操作,又有redis的更新,事务性怎么保证?

异步更新业务库存在延迟,库存逆向回退如何保证?

对于疑问1:由于数据库insert比update性能优,insert是在表的末尾直接插入,没有寻址的过程,可以保证性能比较快。

对于疑问2:方案2不同于缓存直接扣减,而是把缓存扣减放在数据库insert的事务内,通过数据库的事务保证整体的事务。

insert的表被称为库存任务表,其中保存了库存扣减的信息,库存任务表结构可以设计的非常简单,主键+库存信息(json字符串)就可以了。

后续通过异步任务,从库存任务表表中查询出库存更新信息,将其同步到具体的库存表中,实现最终一致性,这种方案可以避免数据的丢失。

对于疑问3:库存回退是根据业务库中扣减记录进行回退的,由于异步更新业务库必定存在延迟(延迟极低,数秒以内),所以极端场景会存在走退款逆向流程时业务库的库存扣减记录还未更新。

针对这种情况库存回退设置延迟重试机制,如果再极端点达到重试阈值依旧没有扣减记录,则返回回退成功,不做阻断。

目前我们针对秒杀库存扣减,采用的是方案2。但毕竟涉及数据库的更新,为了避免风险,在前置流量校验上做了限制,保证流量的可控:

4.2.3库存热点问题

什么是热点问题?热点问题就是因热点商品导致的redis、数据库等性能瓶颈。在库存系统中,热点问题主要存在:

采用直接扣减库存数据库的方式,存在数据库的行锁问题。常规渠道的库存扣减,我们采用的就是的就是这种方式。

采用缓存扣减库存的方式,大流量的情况下,热点商品扣减库存操作会打向redis单片,造成单片性能抖动,从而出现redis性能瓶颈。

对于第1种热点问题,在vivo商城常见的场景是:新发的爆品手机,在准点售卖时会有抢购效应,容易造成库存数据库单行的瓶颈问题。针对这种热点问题,我们的解决方案是“分而治之”:

对于潜在的热点爆款手机,我们会将库存平均分为多行(比如M行),扣减库存时,随机在M行中选取一行库存数据进行扣减。该方案突破了数据库单行锁的瓶颈限制,解决了爆款商品的热点问题。

对于第2种redis单片热点问题,解决方案也是分而治之。将数据库中的库存数据同步到redis时,把key值打散,分散在多个redis单片中。注:我们目前线上的流量峰值还达不到会造成redis单片瓶颈的问题,为避免过度设计,只做了前置限流,没有进行key值的打散。

4.3库存同步方案

库存系统存在一些库存同步场景:

对接仓储系统,完成实物库存同步。

兼容历史架构,商品系统库存的可售库存同步等。

(1)实物库存同步:

实物库存同步,对接的是仓储系统,通过接口来获取商品的实际库存。实物库存同步分成两种:定时全量同步、指定单品更新。

定时全量同步:每天定时全量拉取库存调度平台的实物库存进行全量同步。

制定单品:运营也可以手动触发单个sku的商品即时同步实物库存。

(2)商品系统库存同步:

由于库存系统多个场景涉及库存变更,运营手动编辑、用户下单退款导致库存扣减回退,还有商品系统内编辑库存数据也会导致库存变更(以前库存系统未独立,库存数据维护在商品系统)。同时很多业务在查询库存时,参考的依旧是商品系统的库存数据。

这里有一个问题:库存系统已经独立出来,为什么还会依赖商品系统的库存数据?

这有两点原因:

商城多个业务的后台有商品筛选的需要,商品筛选会有库存数量的筛选项。商品数量很多,筛选是分页的,如果将库存数据全部替换成库存系统的,那么存在跨系统分页问题,分页筛选会存在问题;

历史遗留问题,很多业务方依赖的是商品系统的库存数据(包括依赖商品库存离线表的业务方),全部切换到库存系统,成本和影响范围大。

因此,我们需要保证商品系统和库存系统两边库存数据的一致。

库存数据库发生变更后,鲁班平台通过binlog采集获取库存变更日志,再通过自定义规则筛选,然后发送mq变更消息,最后商品系统消费消息完成库存同步变更。

五、总结及展望

最后对库存系统进行一个总结:

库存系统完成服务拆分,在单一的可售库存扣减功能基础上拓展了很多功能,赋能业务的发展。

完成库存架构分层,抽象多个库存类型,更灵活地满足当前业务需求。

针对库存扣减防重、高并发场景下的库存扣减、库存热点问题、库存同步等技术问题,我们根据业务实际情况设计合理方案。

展望

目前vivo商城库存系统平台化能力不足,部分能力分散在其他系统中,未来我们希望能为vivo新零售提供一体化的库存管理方案。

THE END
1.vivo信息流广告营销策略的优化方案利用合作伙伴的资源,如用户数据、广告渠道等,提高广告的投放效率和转化率。 资源整合: 整合vivo内部的资源,如应用商店、浏览器、主题商店等,实现广告的跨平台投放和资源共享。 利用vivo的生态系统优势,为用户提供更加便捷、高效的服务体验。 综上所述,vivo信息流广告营销策略的优化方案需要从明确目标受众、优化广告内容https://m.vivodsp.com/h-nd-439.html
2.vivo新子品牌Jovi来袭,手机厂商子品牌战略能否再掀波澜?近日,有消息称vivo将于2025年推出全新的子品牌Jovi,这一消息迅速引起了业界的广泛关注。据外媒报道,Jovi品牌将主打海外市场,特别是巴西市场,计划在该地区推出三款中低端机型。值得注意的是,Jovi这一名字原本是vivo的语音助手名称,此次用作新品牌名,不禁让人猜测vivo是否意图将AI技术作为该品牌的核心竞争力。https://baijiahao.baidu.com/s?id=1818748368726876173&wfr=spider&for=pc
3.首席战略官2万字说透商业模式在战略设计环节需要注意的方方面企业可根据客户不同的外在属性(企业客户、个人客户、政府客户等),内在属性(性别、年龄、收入等)或消费行为(最近消费、消费频率与消费额)等进行目标客户群体细分。不同目标客户群体往往具有不同的产品和服务需求,不同的分销渠道、不同客户关系、不同的盈利方式、或对不同产品和服务的付费意愿也不同等等。 https://www.shangyexinzhi.com/article/14421900.html
4.渠道选择(精选十篇)(4) 竞争性产品。同类产品一般应采取同样的分销路线, 较易占领市场。 (5) 销售量的大小。如果一次销售量大, 可以直接供货, 营销渠道就短;一次销售量少就要多次批售, 渠道则会长些。在研究市场因素时, 还要注意产品的用途, 产品的定位, 这对选择营销渠道结构都是重要的。 https://www.360wenmi.com/f/cnkeyef8xmrx.html
5.vivoY200t价格批发报价分销代理进货渠道1111深圳手机批发网提供每日更新vivo Y200t批发报价,vivo Y200t价格,vivo Y200t分销代理,vivo Y200t进货渠道.http://www.159shouji.com/goods-146.html
6.欧洲农化市场分销渠道变革下的新思考Martel认为农化品分销的另一个主要革命可能将来自产品的在线销售。InVivo公司就于2019年启动了数字平台Aladin.farm。该平台由合作社提供支持,将为农民提供各种产品,服务和建议。 Kouventaris提出了同样的观点:“在德国,由批发商、转售商、私营公司和合作社组成的分销结构肯定不容易为外人进入或绕过。每个级别都有其功能。https://cn.agropages.com/News/NewsDetail---20600.htm
7.vivo新品调研打印速度和容量:Vivo即时打印机约需8秒即可完成打印,满电状态下可连续打印约120张照片。 电池续航:每次充电可支持连续打印120张照片。 性价比:Vivo迷你打印机及打印相纸的价格相对合理且负担得起。 价格及分销渠道Vivo即时智能手机迷你打印机的定价为369元人民币,打印相纸的定价为每盒5包,共计50张(即每张约1.98元https://www.wjx.cn/xz/287387484.aspx
8.网络营销与策划(精选15篇)2.建立组织结构 企业的正式组织在网络营销执行过程中起决定性的作用,组织将战略实施的任务分配给具体的部门和人员,规定明确的职权界限和信息沟通渠道,协调企业内部的各项决策和行动。 3.设计决策和报酬制度 为实施网络营销推广方案,必须设计相应的决策和报酬制度。就企业对管理人员工作的评估和报酬制度而言,如果以短期的https://www.unjs.com/fanwenku/410510.html
9.内联升品牌定位战略8篇(全文)(三)分销 1、分销渠道宽度策略 VIVO采用的分销渠道有全国总代理和各省级代理,有自己的专卖店。在各级中间商,代理商的数量方面增加了很多,而且还增加了各种代销模式。同时VIVO智能手机的销售渠道也扩展到线上,即在互联网上建立自己的官方网站,在网站上推出VIVO的产品,进行网络销售。 https://www.99xueshu.com/w/filedpjt26rj.html
10.OPPOvivo的成功模式,你能复制吗?上面就是我们讲的掌控流通价值链的一些做法,是基于渠道和终端的。我前面讲了,现在深度分销已演变成了深度营销,也就是说,对市场的掌控、市场的开发已不仅仅限于零售终端了。这里我提出一个营销理念,就是营销决战在店外。 这两个品牌,经常以零售终端为根据地、为阵地,走出去,到小区,到电影院,到广场,到各个消费者http://news.ppzw.com/Article_Print_227930.html
11.土耳其国家商业指南土耳其一直在寻求在国家医疗保健结构中越来越多地使用医疗信息技术解决方案。卫生部为其使用的许多医疗信息技术工具聘用了软件开发分销和销售渠道 概览 伊斯坦布尔和大马尔马拉地区是土耳其的主要分销中心。伊斯坦布尔港是土耳其最大的进口产品港口。土耳其的大部分分销渠道和销售总部都设在伊斯坦布尔https://www.xbaohui.com/?m=home&c=View&a=index&aid=17081
12.阅文集团VS掌阅科技:从网文龙头看网络文学付费市场新趋势阅文集团:受益于规模效应及腾讯渠道优势,推广支出(渠道成本+销售费用)营收占比降至29.37%。阅文推广支出分为两部分,一是向腾讯支付的计入在线阅读分销成本的渠道成本,第二类是计入销售费用的品牌推广费、预装机合作分成费用,以第二类支出为主。阅文采用按收入分成方式向腾讯旗下QQ浏览器、腾讯新闻等渠道支付推广成本,对http://mp.cnfol.com/article/1528233
13.财经管理经理(渠道财经)就业前景2)熟悉手机销售领域内业务运作,对渠道分销零售链条及业务系统流程有深入了解,并有独立完成渠道财经管理工作; 3)性格开朗、自信,具备工作场景中与业务高效沟通的能力,以及内外部资源协调能力,抗压能力强。 覃女士4月内活跃 vivo·招聘经理 竞争力分析 加载中 https://www.zhipin.com/job_detail/0483f60d3555aaea1Xx-3tu5EVVZ.html
14.vivo智能手机运用的渠道策略有哪些1、分销渠道宽度策略步步高vivo采用的分销渠道有全国总代理和各省级代理,有自己的专卖店。在各级中间商,代理商的数量方面增加了很多,而且还增加了各种代销模式。同时vivo智能手机的销售渠道也扩展到线上,即在互联网上建立自己的官方网站,在网站上推出vivo的产品,进行网络销售。2、分销渠道长度策略步步高对渠道进行了大幅https://wenda.so.com/q/1503827109211465
15.营销策略论文铁路采用的销售策略是直销和个别服务环节的少量分销。直销对铁路运输业是一种有效的渠道策略,但也存在一些问题,必须加以改进。 1.2.3 促销策略。 铁路在运用促销策略时,首先要明确促销的目标,是要创立企业知名度,树立铁路信誉,还是为改变顾客对铁路的态度,吸引客流和货源;其次要正确运用服务促销策略,避免盲目促销。 https://www.ruiwen.com/lunwen/7001548.html
16.艾媒研报2019小米集团运行状况及行业趋势研究报告从2015年到2018年,小米的渠道收入结构大致呈现出线下渠道和分销商渠道的占比持续提升的趋势,反映了小米在业务扩张阶段的渠道选择倾向。2015年,小米的线上销售收入占到了总收入的86.5%,其中来自直销渠道的又高达68.9%,而到2018年3月,线上渠道的比例已经下降到了57.3%,其中线上直销的收入占比仅剩26.3%,线上线下、直https://www.iimedia.cn/c1000/66451.html
17.商业笔记“华与华”企业战略品牌营销方法比如小米当你就是把利益分配给了顾客,也就是我们说的“让利给消费者”,那么决定了他的定价是很低的,也就决定了他只能走电商渠道或自建门店,因为分销商、渠道商没法从你这里赚到钱,他们也不会替你卖,也决定了不会花很大费用去打广告。 而像OPPO、VIVO,他的战略其实就是分利益给渠道商,给广大的线下渠道门店,https://www.jianshu.com/p/805587722464
18.展望未来,共襄盛举!中国出海品牌数字科技峰会告一段落,下届再见悦刻国际 海外数字化负责人 雷小平:悦刻国际深度分销数字化运营 本次会议的首位演讲嘉宾雷小平先生与我们分享了悦刻国际深度分销数字化运营,阐述品牌出海策略和内容策略和用户旅程是DTC营销的核心,需要围绕用户意图构建内容结构,并通过多渠道获取流量。 王耀东先生还与我们讨论了如何在DTC营销中应用整合营销传播(IMC),https://www.hqkjw.cn/index.php/kejifenghui/27010.html
19.产业趋势的起点:供应链“大时代”之物流企业中立第三方垂直供应链的价值逐步显现:多渠道供应链的完整统一;社会资源最优(自建物流则往往是局部最优);同类业务充分隔离和跨品类柔性扩展。 - 3 - 网络结构:商业壁垒的来源 需求的网络连接性与供给的网络经济性,共同构成物流业超额收益的主要来源。科技进步带来运输方式的变迁,推动供应链变革;资金流和信息流逐步从https://www.ldt.gov.cn/publicInformation/toInformationContent?id=3156
20.新零售战略:小米之家的创新实践法则在新零售卖场时代,企业能够利用互联网,借助人工智能、大数据等先进技术,改革现有的商品生产、流通及销售运营方式,建立全新的业态结构与生态体系,实现线上渠道与线下渠道的一体化运营。简言之,就是围绕顾客服务提供,打通线上、线下及物流运营。 小米之家就是新零售卖场时代的典型代表。与其他单纯销售手机及其配件的零售体https://weibo.com/ttarticle/p/show?id=2309404595891892781611
21.网络营销方案模板3000字汇总②网上营销的基本要素仍然是产品、价格、促销和分销渠道四个方面,虽然这四个要素的内容有较大的变化。③两者并行不悖,谁也无法取代谁,而且往往两者互相配合,网上营销手段可为传统商务服务,传统营销手段也可为网上的电子商务服务正好说明了这点。 网络营销方案模板 篇5 摘要:文章从信息产品网络营销的特点出发,分析了https://www.liuxue86.com/a/4470702.html
22.产品市场调查报告(通用15篇)由图可以看出,小袋装较为受欢迎,占35.94%,盒装占23.44%,大袋与散装分别同样占20.31%,可见小份包装的零食产品更为容易携带,也容易被大家选择。 8.受访者购买食品最在意方面 由图可看出,受访者中67.19%的人选择了味道,21.88%的人选择了品质,剩下的人则分别选择了价格,外观与功能。可见对于零食产品来说,味道与品https://www.jy135.com/diaochabaogao/1328511.html
23.当年看不起私域流量的企业,现在看不起肆拾玖坊摘要:老规矩,先总结,估值50亿的肆拾玖坊主要靠两点: 一是渠道分销,没有中间商赚差价;二是用户驱动,反向拿下用户。 文章来源:私域流量观察(id:gh_8a0eb58fba1a)作者:彭pp 原文链接:当年看不起私域流量的企业,现在看不起肆拾玖坊 前几天老板给了我一个选题——肆拾玖坊,我小眼一翻,义正言辞地拒绝了。 https://www.haoad123.com/article/2579.html
24.OPPO与vivo渠道乱象:平价出货每台就赚30元返利【OPPO与vivo渠道乱象:平价出货每台就赚30元返利】OPPO、vivo的逆袭,让众手机厂商将目光重新投向线下渠道。华为、中兴、小米、金立、酷派等手机厂商纷纷把建设线下渠道作为2016年的战略目标,眼见得一场渠道大战不可避免。(证券日报) 炒股第一步,先开个股票账户 https://finance.eastmoney.com/a2/20160301599179233.html
25.VIVO手机市场分析及竞争策略分析报告.docx(二)、销售渠道与分销网络 6324753(三)、客户关系管理与维护 6411974(四)、市场反馈与调整策略 6516669十二、VIVO手机行业发展方向 6615042(一)、未来趋势与预测 662177(二)、新兴技术应用 6818731(三)、VIVO手机行业生态系统构建 6915272(四)、国际市场拓展策略 7028719十三、VIVO手机供应链管理 7229266(一)、供应链https://www.renrendoc.com/paper/319207941.html