首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种商品抢购请求分配方法_北京首汽智行科技有限公司_201910614812.8 

申请/专利权人:北京首汽智行科技有限公司

申请日:2019-07-09

公开(公告)日:2023-08-01

公开(公告)号:CN110333951B

主分类号:G06F16/23

分类号:G06F16/23;G06Q10/087;G06Q30/0601;G06F16/22;G06F9/50

优先权:

专利状态码:有效-授权

法律状态:2023.08.01#授权;2019.11.08#实质审查的生效;2019.10.15#公开

摘要:本发明公开的商品抢购请求分配方法,涉及电子商务技术领域,通过根据商品的SKU,将商品库存拆分为多个商品单例并将多个商品单列分别以key‑value形式存储,从redis数据库中获取服务器的数量、各个商品单例的库存数量,计算各个服务器处理的商品抢购请求数量,根据商品抢购请求数量及服务器响应线程权重,为商品抢购请求重新分配服务器,避免了超卖及错卖的情况,保证了商品抢购的公平性,提升了用户体验。

主权项:1.一种商品抢购请求分配方法,其特征在于,包括:根据商品的库存量单位SKU,将商品库存拆分为多个商品单例并将所述多个商品单列分别以key-value形式存储;从redis数据库中获取服务器的数量、各个商品单例的库存数量;接收用户商品抢购请求,根据公式L=M÷N×K,计算各个服务器处理的商品抢购请求数量,其中,M为商品库存的数量、N为服务器的数量、K为服务器响应线程权重、L为服务器当前处理的商品抢购请求数量;根据所述商品抢购请求数量及所述服务器响应线程权重,为所述商品抢购请求重新分配服务器;利用jedis工具,对商品库存进行校验及销毁;根据被抢购商品单例的key值,确定redis分片的个数并根据redis的个数,计算被抢购商品单例的剩余库存数量;根据先进先出原则并利用delete指令,逆向销毁被抢购商品单例的key值。

全文数据:一种商品抢购请求分配方法技术领域本发明属于电子商务技术领域,具体涉及一种商品抢购请求分配方法。背景技术目前,各个企业通过线上给客户发放优惠券,实现城市推广、渠道奖励、活动拉新、结算补偿等重要业务功能。优惠券作为一类商品,其抢购购买是重要的获取渠道,如何高效准确让用户获取优惠券成为程序设计需要重要解决的问题。目前高并发下商品抢购场景解决办法如下:对于高并发抢购场景库存超卖是首要解决的问题,基于悲观锁及队列可以解决但相对性能和并发能力有很大影响;基于redis的操作在高并发下频繁读写库存值容易导致服务器性能下降,降低系统并发处理能力;常规队列只能固定队列处理数量,不能对于业务场景配置,增大失败场景,降低了可用性及用户体验;基于多负载服务器的抢购处理逻辑由于应用在不同主机,导致用户请求存在数序不统一的问题,违背了先进先出的原则,使得抢购缺少公平性。发明内容针对现有技术存在的缺陷,本发明实施例提供了一种商品抢购请求分配方法,该方法包括以下步骤:根据商品的库存量单位StockKeepingUnit,SKU,将商品库存拆分为多个商品单例并将所述多个商品单列分别以key-value形式存储;从redis数据库中获取服务器的数量、各个商品单例的库存数量;接收用户商品抢购请求,根据公式L=M÷N×K,计算各个服务器处理的商品抢购请求数量,其中,M为商品库存的数量、N为服务器的数量、K为服务器响应线程权重、L为服务器当前处理的商品抢购请求数量;根据所述商品抢购请求数量及所述服务器响应线程权重,为所述商品抢购请求重新分配服务器。优选地,在为所述商品抢购请求重新分配服务器之后,所述方法还包括:利用jedis工具,对商品库存进行校验及销毁,以避免出现商品超卖及错卖的情况。优选地,利用jedis工具,对商品库存进行校验及销毁包括:根据被抢购商品单例的key值,确定redis分片的个数并根据redis的个数,计算被抢购商品单例的剩余库存数量;根据先进先出原则并利用delete指令,逆向销毁被抢购商品单例的key值,使得能够更加有效地完成对商品库存的销毁。优选地,商品单列的key值为5位补零整型字符编码。其中,以固定长度保存的key值及value值的数据查询效率最高且可估算存储空间便于存储单元的扩展。优选地,服务器响应线程权重为根据服务器的性能人为设定的,范围在0.1-1之间。本发明实施例提供的商品抢购请求分配方法具有以下有益效果:1基于百万日活用户商品抢购场景,保证了商品库存数量准确变化;2基于百万日活用户商品抢购场景,在不同商品库存数量下以可变长度队列处理用户请求,提升了用户体验。3基于百万日活用户商品抢购场景,在多负载服务器支持下,利用处理队列的先进先出属性,避免了超卖及错卖的情况,保证了商品抢购的公平性。附图说明图1为本发明实施例提供的商品抢购请求分配方法流程示意图。具体实施方式以下结合附图和具体实施例对本发明作具体的介绍。如图1所示,本发明实施例提供的商品抢购请求分配方法包括以下步骤:S101,根据商品的SKU,将商品库存拆分为多个商品单例并将多个商品单列分别以key-value形式存储。其中,SKU是物理上不可分割的最小货存单元,是指一款商品,每款商品对应一个SKU,便于识别商品,可以根据SKU来确定具体的货物存量。作为一个具体的实施例,商品的key值通过SHA1算法生成以hash取模方式分片保存,保证商品标识的空间唯一,以避免商品标识的重复。S102,从redis数据库中获取服务器的数量、各个商品单例的库存数量。S103,接收用户商品抢购请求,根据公式L=M÷N×K,计算各个服务器处理的商品抢购请求数量,其中,M为商品库存的数量、N为服务器的数量、K为服务器响应线程权重、L为服务器当前处理的商品抢购请求数量。S104,根据商品抢购请求数量及服务器响应线程权重,为商品抢购请求重新分配服务器。其中,商品抢购请求数量越大,为其分配的服务器响应线程权重的值就越大。可选地,在为所述商品抢购请求重新分配服务器之后,所述方法还包括:利用jedis工具,对商品库存进行校验及销毁,以避免出现商品超卖及错卖的情况。可选地,利用jedis工具,对商品库存进行校验及销毁包括:根据被抢购商品单例的key值,确定redis分片的个数并根据redis的个数,计算被抢购商品单例的剩余库存数量;根据先进先出原则并利用delete指令,逆向销毁被抢购商品单例的key值,使得能够更加有效地完成对商品库存的销毁。作为一个具体的实施例,销毁商品key值方式包括:通过redis-client或sdk的delete指令的方式、通过修改key对应value的值置空或反向值的方式及通过修改key对应的time时效的方式。其中delete指令借助于redis高速单线程处理能力及redis的pipeline批量模式的高效性,能够更加有效解决商品抢购过程中的超卖、错买问题。销毁可以支持FIFO及库存校验功能,可最有效完成销毁。可选地,商品单列的key值为5位补零整型字符编码。可选地,服务器响应线程权重为根据服务器的性能人为设定的,范围在0.1-1之间。本发明实施例提供的商品抢购请求分配方法,通过根据商品的SKU,将商品库存拆分为多个商品单例并将多个商品单列分别以key-value形式存储,从redis数据库中获取服务器的数量、各个商品单例的库存数量,计算各个服务器处理的商品抢购请求数量,根据商品抢购请求数量及服务器响应线程权重,为商品抢购请求重新分配服务器,避免了超卖及错卖的情况,保证了商品抢购的公平性,提升了用户体验。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。可以理解的是,上述方法及装置中的相关特征可以相互参考。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器RAM和或非易失性内存等形式,如只读存储器ROM或闪存flashRAM,存储器包括至少一个存储芯片。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不限于磁盘存储器、CD-ROM、光学存储器等上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备系统、和计算机程序产品的流程图和或方框图来描述的。应理解可由计算机程序指令实现流程图和或方框图中的每一流程和或方框、以及流程图和或方框图中的流程和或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器CPU、输入输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器RAM和或非易失性内存等形式,如只读存储器ROM或闪存flashRAM。存储器是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存PRAM、静态随机存取存储器SRAM、动态随机存取存储器DRAM、其他类型的随机存取存储器RAM、只读存储器ROM、电可擦除可编程只读存储器EEPROM、快闪记忆体或其他内存技术、只读光盘只读存储器CD-ROM、数字多功能光盘DVD或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体transitorymedia,如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不限于磁盘存储器、CD-ROM、光学存储器等上实施的计算机程序产品的形式。以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

权利要求:1.一种商品抢购请求分配方法,其特征在于,包括:根据商品的库存量单位SKU,将商品库存拆分为多个商品单例并将所述多个商品单列分别以key-value形式存储;从redis数据库中获取服务器的数量、各个商品单例的库存数量;接收用户商品抢购请求,根据公式L=M÷N×K,计算各个服务器处理的商品抢购请求数量,其中,M为商品库存的数量、N为服务器的数量、K为服务器响应线程权重、L为服务器当前处理的商品抢购请求数量;根据所述商品抢购请求数量及所述服务器响应线程权重,为所述商品抢购请求重新分配服务器。2.根据权利要求1所述的商品抢购请求分配方法,其特征在于,在为所述商品抢购请求重新分配服务器之后,所述方法还包括:利用jedis工具,对商品库存进行校验及销毁。3.根据权利要求2所述的商品抢购请求分配方法,其特征在于,利用jedis工具,对商品库存进行校验及销毁包括:根据被抢购商品单例的key值,确定redis分片的个数并根据redis的个数,计算被抢购商品单例的剩余库存数量;根据先进先出原则并利用delete指令,逆向销毁被抢购商品单例的key值。4.根据权利要求1所述的商品抢购请求分配方法,其特征在于,商品单列的key值为5位补零整型字符编码。5.根据权利要求1所述的商品抢购请求分配方法,其特征在于,服务器响应线程权重为根据服务器的性能人为设定的,范围在0.1-1之间。

百度查询: 北京首汽智行科技有限公司 一种商品抢购请求分配方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。