首页> 中国专利> 电商热点商品库存扣减控制方法及系统

电商热点商品库存扣减控制方法及系统

摘要

本发明涉及一种电商热点商品库存扣减控制方法及系统,属于互联网技术领域。采用了该发明的电商热点商品库存扣减控制方法及系统,其建立与热点商品的SKU关联的若干分片,分片占用热点商品SKU的部分库存。在接收热点商品到库存扣减请求时,可从分片中扣减相应的库存,库存扣减请求并发的情况下,可同时从多个分片中扣除,从而提升库存扣减的并行处理能力;特别适用于高并发情况,可以实现库存的准确扣除,进而有效提升用户体验。

著录项

  • 公开/公告号CN112418747A

    专利类型发明专利

  • 公开/公告日2021-02-26

    原文格式PDF

  • 申请/专利权人 上海哔哩哔哩科技有限公司;

    申请/专利号CN201911317242.2

  • 发明设计人 曹林华;

    申请日2019-12-19

  • 分类号G06Q10/08(20120101);G06Q30/06(20120101);G06F16/23(20190101);G06F16/25(20190101);

  • 代理机构31314 上海大视知识产权代理事务所(特殊普通合伙);

  • 代理人顾小伟;蔡沅

  • 地址 200433 上海市杨浦区四平路1945号1641室

  • 入库时间 2023-06-19 10:00:31

说明书

技术领域

本发明涉及互联网技术领域,特别涉及电商库存控制方法技术领域,具体是指一种电商热点商品库存扣减控制方法及系统。

背景技术

电商平台,特别是分布式微服务架构下电商平台,在处理下单的过程中需要对库存以商品SKU的维度来进行扣除/冻结。对于普通商品销售而言,不存在高并发的下单和库存扣除情况。而对于热点商品和秒杀商品而言,下单与库存扣除均存在高并发的情况。高并发的库存扣除状态下,容易产生实际销售量超出允许销售量的超卖问题,也存在库存扣减反馈慢,用户体验差的问题。

因此,如何提供一种在下单高并发的情况下,可以实现库存准确扣除,从而特别适用于热点商品电商销售的控制方法成为本领域亟待解决的问题。

发明内容

本发明的目的是克服了上述现有技术中的缺点,提供一种适用于高并发情况的,可以实现库存准确扣除,从而有效提升用户体验的电商热点商品库存扣减控制方法及系统。

为了实现上述的目的,本发明的电商热点商品库存扣减控制方法应用于一库存服务器,所述库存服务器运行有库存数据库,该库存数据库中每件商品对应一个库存量单位SKU,热点商品的SKU包括与该热点商品SKU关联的至少一个分片,所述分片占用该热点商品SKU的部分库存。该电商热点商品库存扣减控制方法包括:

接收到库存扣减请求,并判断该请求针对的商品是否为预设的所述热点商品;

若为热点商品,则根据所述的库存扣减请求在该商品的SKU关联的一个分片中扣减相应的库存,并判断在分片中的扣减是否成功,若成功,则将扣减结果反馈至所述的库存扣减请求的发送端;

若在分片中的扣减不成功,或若不为热点商品,则根据所述的库存扣减请求在该商品的SKU中扣减相应的库存,并将扣减结果反馈至所述的库存扣减请求的发送端。

该电商热点商品库存扣减控制方法中,所述的热点商品SKU关联有两个以上的分片,

所述的根据所述的库存扣减请求在该商品的SKU关联的一个分片中扣减相应的库存,具体为:

开启库存扣减事务,插入幂等操作记录;

选定一个分片;

在选定的分片中扣除与所述的库存扣减请求相应的库存;

产生扣减结果,结束所述库存扣减事务。

该电商热点商品库存扣减控制方法中,所述的分片包括分片标识,所述的选定一个分片,具体为:

通过计算hash(mid+timestamp)%n的值获取对应的分片标识获取对应的分片标识,其中n为分片数。

该电商热点商品库存扣减控制方法中,所述的SKU包括热点标识,该电商热点商品库存扣减控制方法,在所述的接收到库存扣减请求之前还包括开启热点商品的过程,该开启热点商品的过程具体为:

通过设置SKU的热点标识,将符合预设条件的商品设定为热点商品,并建立与该热点商品SKU关联的分片。

该电商热点商品库存扣减控制方法中,所述的建立与该热点商品SKU关联的分片,具体为:

根据预设的数量建立至少一个分片,确定各分片的分片标识及分片库存,在所述的热点商品SKU的库存中扣除全部的分片库存。

该电商热点商品库存扣减控制方法中,在所述的开启热点商品的过程之后,还包括:关闭热点商品的过程,该关闭热点商品的过程具体为:

定时查询是否存在满足预设的关闭热点商品条件的商品,若存在,则将该商品的SKU的热点标识设定为非热点商品,并将全部分片的剩余库存归还至其关联的商品SKU的库存中。

其中,所述的预设的关闭热点商品的条件为:

一个分片的分片库存为零;

或全部分片的剩余库存之和小于单次扣除的最大值。

所述的将全部分片的剩余库存归还至其关联的商品SKU的库存中,具体为:

查询每个分片的剩余库存是否为零,若不为零,则扣除该分片的全部剩余库存并添加至其关联的商品SKU的库存中。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述的电商热点商品库存扣减控制方法。

本发明还提供一种电商热点商品库存扣减控制系统,包括库存服务器和电商服务器,其特征在于,所述的库存服务器包括处理器和存储器,所述的存储器存储有计算机程序及库存数据库,该库存数据库中每件商品对应一个SKU,热点商品的SKU包括与该热点商品SKU关联的至少一个分片,所述分片占用该热点商品SKU的部分库存,该库存服务器从所述的电商服务器接收到库存扣减请求,并利用所述的处理器执行所述的计算机程序时,实现上述的电商热点商品库存扣减控制方法。

采用了该发明的电商热点商品库存扣减控制方法及系统,其建立与热点商品的SKU关联的若干分片,分片占用热点商品SKU的部分库存。在接收热点商品到库存扣减请求时,可从分片中扣减相应的库存,在库存扣减请求并发的情况下,可同时从多个分片中扣除,从而提升库存扣减的并行处理能力;因此特别适用于高并发情况,可以实现库存的准确扣除,进而有效提升用户体验。

附图说明

图1为本发明的电商热点商品库存扣减控制方法的步骤流程图;

图2为本发明的电商热点商品库存扣减控制方法在实际应用中的库存扣减请求处理流程示意图;

图3为本发明的电商热点商品库存扣减控制方法在实际应用中的关闭热点商品流程示意图。

具体实施方式

为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。

请参阅图1所示,为本发明的电商热点商品库存扣减控制方法的步骤流程图。

在一种实施方式中,该电商热点商品库存扣减控制方法应用于一库存服务器,所述库存服务器运行有库存数据库,该库存数据库中每件商品对应一个库存量单位SKU(Stock keeping Unit,是在库存数据库对应每一个产品的唯一标示符),热点商品的SKU包括与该热点商品SKU关联的至少一个分片,所述分片占用该热点商品SKU的部分库存。所述的电商热点商品库存扣减控制方法包括:

接收到库存扣减请求,并判断该请求针对的商品是否为预设的所述热点商品;

若为热点商品,则根据所述的库存扣减请求在该商品的SKU关联的一个分片中扣减相应的库存,并判断在分片中的扣减是否成功,若成功,则将扣减结果反馈至所述的库存扣减请求的发送端;

若在分片中的扣减不成功,或若不为热点商品,则根据所述的库存扣减请求在该商品的SKU中扣减相应的库存,并将扣减结果反馈至所述的库存扣减请求的发送端。

该实施方式中的库存扣减也可以被理解为应对商品下单操作的库存冻结,在库存冻结后,根据实际的电商平台交易结果将所冻结的库存最终扣除。

利用该实施方式,可以将对于同一热点商品的并发的多个库存扣减请求分散到多个分片进行处理,从而有效提升了库存服务器对于高并发请求的处理能力,进而提供了更佳的用户体验。

在优选的实施方式中,所述的热点商品SKU可以关联有两个以上的分片,

所述的根据所述的库存扣减请求在该商品的SKU关联的一个分片中扣减相应的库存,具体为:

开启库存扣减事务,插入幂等操作记录;

选定一个分片;

在选定的分片中扣除与所述的库存扣减请求相应的库存;

产生扣减结果,结束所述库存扣减事务。

所述的选定一个分片,具体为:

通过计算hash(mid+timestamp)%n的值获取对应的分片标识获取对应的分片标识,其中n为分片数。

利用了该实施方式,由于一个SKU关联了两个以上的分片,从而能够针对库存扣减请求选择符合库存要求的分片进行扣除,提高了本发明的商品库存扣减管理方法的适应性,使之更适用于扣减情况高并发的状态。

在另一优选的实施方式中,所述的SKU包括热点标识,该电商热点商品库存扣减控制方法,在所述的接收到库存扣减请求之前还包括开启热点商品的过程,该开启热点商品的过程具体为:

通过设置SKU的热点标识,将符合预设条件的商品设定为热点商品,并建立与该热点商品SKU关联的分片。

其中,所述的建立与该热点商品SKU关联的分片,具体为:

根据预设的数量建立至少一个分片,确定各分片的分片标识及分片库存,在所述的热点商品SKU的库存中扣除全部的分片库存。

通过利用该实施方式,可以提供一种热点商品的设定方法,从而方便根据实际运营需要,将普通商品设定为热点商品,进而针对新设定的热点商品采用本发明的库存扣减控制方法。

更优选的实施方式中,在所述的开启热点商品的过程之后,还包括:关闭热点商品的过程,该关闭热点商品的过程具体为:

定时查询是否存在满足预设的关闭热点商品条件的商品,若存在,则将该商品的SKU的热点标识设定为非热点商品,并将全部分片的剩余库存归还至其关联的商品SKU的库存中。

所述的预设的关闭热点商品的条件为:

一个分片的分片库存为零;

或全部分片的剩余库存之和小于单次扣除的最大值。

同时,所述的将全部分片的剩余库存归还至其关联的商品SKU的库存中,具体为:

查询每个分片的剩余库存是否为零,若不为零,则扣除该分片的全部剩余库存并添加至其关联的商品SKU的库存中。

通过该实施方式,可以保证在满足预设条件的情况下,将热点商品重新设定为普通商品,并确保调整前后的库存准确性。

本发明还提供一种电商热点商品库存扣减控制系统以及一种计算机可读存储介质。该电商热点商品库存扣减控制系统包括库存服务器和电商服务器。所述的库存服务器包括处理器和存储器,所述的存储器即为所述的计算机可读存储介质,其上存储有计算机程序及库存数据库。该库存数据库中每件商品对应一个SKU,热点商品的SKU包括与该热点商品SKU关联的至少一个分片,所述分片占用该热点商品SKU的部分库存。当该库存服务器从所述的电商服务器接收到库存扣减请求,并利用所述的处理器执行所述的计算机程序时,实现上述各实施方式所述的电商热点商品库存扣减控制方法。

在实际应用中,本发明的电商热点商品库存扣减控制方法主要应用于热点商品的库存扣减。热点商品与秒杀商品的区别在于,秒杀商品很快就会将库存扣减为零,且之后秒杀活动结束,不会再产生扣减库存请求;而热点商品库存比较多(库存超过1万以上),长时间处于下单量大,扣减库存请求并发高的状态。因此,本发明的电商热点商品库存扣减控制方法特别适用于热点商品。

扣减库存请求(冻结库存)大体可分为两步:插入幂等日志和冻结SKU库存。可以采用以下冻结SKU库存update语句:

1.开启库存扣减事务

start transaction

2.插入幂等操作日志

insert stock_log

3.冻结sku库存

update sku_item set frozen_stock=frozen_stock+1,available_stock=available_stock-1where available_stock>0

4.关闭事务

end transaction

update瓶颈可视作I/O瓶颈,解决方法主要两种:

增加IO设备(分散读写记录);

减少IO次数(批量一次性提交)。

本发明的电商热点商品库存扣减控制方法的主要实现方案既是在热点商品场景下,采用水平拆分分片的思路来分散热点数据。

以下通过各实施例具体介绍本发明的实现过程。

实施例1

原先单条SKU记录拆分成主SKU记录(sku_item)和分片SKU记录表(sku_sharding)。

主SKU记录sku_item如下表所示。SKU主表添加is_hot字段,当is_hot为1时,表明该SKU为热点商品,为0,则为非热点商品。部分主SKU的库存数量平均分摊到sku_sharding表中。

表1主sku记录sku_item字段表

分片SKU记录表sku_sharding如下表2所示。其中sharding_id为分片id,默认分片为4个分片,具体分片数量可以根据实际数据评估。在库存数据库中热点商品较多的情况下,还可以通过sku_id来将分片表进行进一步拆分。

表2分片sku记录表sku_sharding字段表

在建立了以上主SKU和分片SKU的基础上,处理库存扣减请求的过程,如图2所示,包括以下操作流程:

1.通过sku_id查询sku_item是否是热点商品;

2.如果不是,直接沿用现有的冻结库存流程;

3.如果是,则先开启库存扣减事务,插入幂等操作记录,通过计算hash(mid+timestamp)%4的值获取sku sharding id,根据sku_id和sharding_id,冻结扣减对应sku_sharding中的stock记录;

4.如果冻结失败,说明sku_sharding表中库存不足,则再扣减sku_item主表里面库存,根据冻结结果,返回给前端结果;

5.如果冻结成功,直接关闭事务,返回前端数据。

实施例2

该实施例用于实现热点商品的开启。

运营根据活动商品数量(例如:SKU大于1万)和热度来判断是否开启热度商品。

库存数量分配规则如下:假设库存数量为10001个,通过算法平均分成5份(默认4个分片+主分片),其中多余的库存,全部加入到主分片中,具体主表与分片表记录分配如下:

表3库存数量分配后的SKU主表

表4库存数量分配后的SKU分片表

实施例3

该实施例用于实现热点商品的关闭。

冻结分片库存中,当出现下面两种情况,就需要进行调整分片库存。

1.分片表中库存等于0:当出现某个分片库存等于0的时候,说明分片表中库存偏少,对于冻结少量库存的时候,会出现冻结不成功的情况,

2.总分片库存小于100:现在单一sku单次冻结个数上限为99,当用户总库存小于100的时候,冻结99个,则分片库存必定不足。

关闭热点商品的流程如图3所示,包括:回收分片中碎片库存到主表和关闭热点标记。具体触发方式采用每3秒运行定时任务。

另外,当时出现超时未支付或者退款的订单时,默认归还到主表库存记录中。

采用了该发明的电商热点商品库存扣减控制方法及系统,其建立与热点商品的SKU关联的若干分片,分片占用热点商品SKU的部分库存。在接收热点商品到库存扣减请求时,可从分片中扣减相应的库存,库存扣减请求并发的情况下,可同时从多个分片中扣除,从而提升库存扣减的并行处理能力;特别适用于高并发情况,可以实现库存的准确扣除,进而有效提升用户体验。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号