CN110333951B - 一种商品抢购请求分配方法 - Google Patents
一种商品抢购请求分配方法 Download PDFInfo
- Publication number
- CN110333951B CN110333951B CN201910614812.8A CN201910614812A CN110333951B CN 110333951 B CN110333951 B CN 110333951B CN 201910614812 A CN201910614812 A CN 201910614812A CN 110333951 B CN110333951 B CN 110333951B
- Authority
- CN
- China
- Prior art keywords
- commodity
- server
- inventory
- purchase request
- servers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开的商品抢购请求分配方法,涉及电子商务技术领域,通过根据商品的SKU,将商品库存拆分为多个商品单例并将多个商品单列分别以key‑value形式存储,从redis数据库中获取服务器的数量、各个商品单例的库存数量,计算各个服务器处理的商品抢购请求数量,根据商品抢购请求数量及服务器响应线程权重,为商品抢购请求重新分配服务器,避免了超卖及错卖的情况,保证了商品抢购的公平性,提升了用户体验。
Description
技术领域
本发明属于电子商务技术领域,具体涉及一种商品抢购请求分配方法。
背景技术
目前,各个企业通过线上给客户发放优惠券,实现城市推广、渠道奖励、活动拉新、结算补偿等重要业务功能。优惠券作为一类商品,其抢购购买是重要的获取渠道,如何高效准确让用户获取优惠券成为程序设计需要重要解决的问题。
目前高并发下商品抢购场景解决办法如下:
对于高并发抢购场景库存超卖是首要解决的问题,基于悲观锁及队列可以解决但相对性能和并发能力有很大影响;基于redis的操作在高并发下频繁读写库存值容易导致服务器性能下降,降低***并发处理能力;常规队列只能固定队列处理数量,不能对于业务场景配置,增大失败场景,降低了可用性及用户体验;基于多负载服务器的抢购处理逻辑由于应用在不同主机,导致用户请求存在数序不统一的问题,违背了先进先出的原则,使得抢购缺少公平性。
发明内容
针对现有技术存在的缺陷,本发明实施例提供了一种商品抢购请求分配方法,该方法包括以下步骤:
根据商品的库存量单位(Stock Keeping Unit,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)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (3)
1.一种商品抢购请求分配方法,其特征在于,包括:
根据商品的库存量单位SKU,将商品库存拆分为多个商品单例并将所述多个商品单列分别以key-value形式存储;
从redis数据库中获取服务器的数量、各个商品单例的库存数量;
接收用户商品抢购请求,根据公式L=M÷N×K,计算各个服务器处理的商品抢购请求数量,其中,M为商品库存的数量、N为服务器的数量、K为服务器响应线程权重、L为服务器当前处理的商品抢购请求数量;
根据所述商品抢购请求数量及所述服务器响应线程权重,为所述商品抢购请求重新分配服务器;
利用jedis工具,对商品库存进行校验及销毁;
根据被抢购商品单例的key值,确定redis分片的个数并根据redis的个数,计算被抢购商品单例的剩余库存数量;
根据先进先出原则并利用delete指令,逆向销毁被抢购商品单例的key值。
2.根据权利要求1所述的商品抢购请求分配方法,其特征在于,商品单列的key值为5位补零整型字符编码。
3.根据权利要求1所述的商品抢购请求分配方法,其特征在于,服务器响应线程权重为根据服务器的性能人为设定的,范围在0.1-1之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910614812.8A CN110333951B (zh) | 2019-07-09 | 2019-07-09 | 一种商品抢购请求分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910614812.8A CN110333951B (zh) | 2019-07-09 | 2019-07-09 | 一种商品抢购请求分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110333951A CN110333951A (zh) | 2019-10-15 |
CN110333951B true CN110333951B (zh) | 2023-08-01 |
Family
ID=68144419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910614812.8A Active CN110333951B (zh) | 2019-07-09 | 2019-07-09 | 一种商品抢购请求分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333951B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418747A (zh) * | 2019-12-19 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 电商热点商品库存扣减控制方法及*** |
CN111506445A (zh) * | 2020-04-21 | 2020-08-07 | 北京思特奇信息技术股份有限公司 | 一种基于redis缓存的防止商品重复恶意订购方法及*** |
CN112748924B (zh) * | 2021-02-09 | 2024-07-12 | 上海哔哩哔哩科技有限公司 | 库存展示方法及*** |
CN112988812B (zh) * | 2021-03-10 | 2024-02-06 | 京东科技控股股份有限公司 | 库存数据的处理方法、装置、设备及存储介质 |
CN113077220A (zh) * | 2021-04-16 | 2021-07-06 | 北京京东拓先科技有限公司 | 用户请求的处理方法和装置 |
CN113095913A (zh) * | 2021-04-29 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的抢购方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101852A1 (zh) * | 2014-12-23 | 2016-06-30 | 北京京东尚科信息技术有限公司 | 数据处理方法和*** |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
CN108133399A (zh) * | 2016-11-30 | 2018-06-08 | 北京京东尚科信息技术有限公司 | 高并发快响应的秒杀库存精准扣减的方法、装置及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9871855B2 (en) * | 2014-09-19 | 2018-01-16 | Facebook, Inc. | Balancing load across cache servers in a distributed data store |
CN105160572A (zh) * | 2015-09-30 | 2015-12-16 | 努比亚技术有限公司 | 控制订单生成的装置、方法及秒杀*** |
CN105468690B (zh) * | 2015-11-17 | 2018-11-30 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
CN106202505B (zh) * | 2016-07-20 | 2019-09-20 | 北京京东尚科信息技术有限公司 | 数据处理方法及其*** |
CN107870942A (zh) * | 2016-09-28 | 2018-04-03 | 湖南移商动力网络技术有限公司 | 一种基于电商平台的商城抢购设计应用方法 |
CN107220878A (zh) * | 2017-05-26 | 2017-09-29 | 努比亚技术有限公司 | 业务处理***、秒杀订单处理方法和设备 |
-
2019
- 2019-07-09 CN CN201910614812.8A patent/CN110333951B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016101852A1 (zh) * | 2014-12-23 | 2016-06-30 | 北京京东尚科信息技术有限公司 | 数据处理方法和*** |
CN108133399A (zh) * | 2016-11-30 | 2018-06-08 | 北京京东尚科信息技术有限公司 | 高并发快响应的秒杀库存精准扣减的方法、装置及*** |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
An Adaptive Weighted Least-Load Balancing Algorithm Based on Server Cluster;Ying Wu等;《2013 5th International Conference on Intelligent Human-Machine Systems and Cybernetics》;第224-227页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110333951A (zh) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333951B (zh) | 一种商品抢购请求分配方法 | |
CN106547784B (zh) | 一种数据拆分存储方法及装置 | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
CN110363476B (zh) | 货物入仓分配处理方法及装置 | |
CN105159604A (zh) | 一种磁盘数据读写方法和*** | |
CN108074051B (zh) | 一种库存管理方法及装置 | |
CN104951852A (zh) | 周期性订单信息的处理方法及*** | |
US10438282B2 (en) | Computerized invoice record and receipt record matching utilizing best match criteria | |
US9146952B1 (en) | System and method for distributed back-off in a database-oriented environment | |
CN107295052B (zh) | 一种业务处理方法及装置 | |
CN104424220A (zh) | 一种数据处理方法及装置 | |
CN107147610B (zh) | 资源的处理方法及装置 | |
US8539492B1 (en) | Managing data dependencies among multiple jobs using separate tables that store job results and dependency satisfaction | |
CN110659296B (zh) | 存储方法、装置、设备以及计算机可读介质 | |
CN107194712B (zh) | 共享账户变动信息记录方法及装置、内部账户补账方法及*** | |
CN109614386B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111709769A (zh) | 一种数据处理方法及装置 | |
CN111898937A (zh) | 库存管理方法、装置、设备和*** | |
CN108121733B (zh) | 一种数据的查询方法及装置 | |
CN106874327B (zh) | 一种针对业务数据的计数方法及装置 | |
CN111260411B (zh) | 一种资源处理方法及装置 | |
CN110738806B (zh) | 支付方式确定方法、装置、***及电子设备 | |
CN111831964B (zh) | 数据报表信息处理方法、装置及计算机*** | |
CN105447699B (zh) | 一种数据处理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |