CN114445200B - 秒杀活动处理方法及装置 - Google Patents
秒杀活动处理方法及装置 Download PDFInfo
- Publication number
- CN114445200B CN114445200B CN202210364888.1A CN202210364888A CN114445200B CN 114445200 B CN114445200 B CN 114445200B CN 202210364888 A CN202210364888 A CN 202210364888A CN 114445200 B CN114445200 B CN 114445200B
- Authority
- CN
- China
- Prior art keywords
- killing
- request
- requests
- redis
- gateway
- 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
Images
Classifications
-
- 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
- G06Q30/0637—Approvals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- 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/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0222—During e-commerce, i.e. online transactions
-
- 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/0611—Request for offers or quotes
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种秒杀活动处理方法及装置,该方法包括:当检测到web服务器经由预设的网关向微服务器发送的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;控制网关基于每个秒杀请求对应的请求信息,对各个秒杀请求进行过滤,保留满足秒杀条件的有效秒杀请求;基于Lpop及Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;生成请求成功的有效秒杀请求对应的客户的预留订单;当接收到任意的预留订单对应的订单提交请求时,对预留订单进行结算,生成订单提交请求对应的结算订单。应用本发明提供的方法,可以限制秒杀请求的数量,避免瞬间请求的高并发量。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种秒杀活动处理方法及装置。
背景技术
商品的秒杀活动是目前电商平台一种常见的营销手段,电商平台的应用***在进行产品秒杀活动时面对的是更小的时间窗口和更小的库存值,电商平台在发起秒杀活动时要求应用***具备处理瞬时高并发请求的能力,以应对同时有大量的用户去抢购商品。
现有技术应对高并发请求时,通常是将抢购过程与下单交易的过程分开进行处理,以缓解应用***的负载压力。但现有技术的方法是通过roketmq队列的方式将抢购和下单的过程分开,当roketmq所需运维成本较大,且无法控制高并发请求的数量。
发明内容
有鉴于此,本发明提供一种秒杀活动处理方法,通过该方法,可以限制秒杀请求的数量,并将抢购和下单过程分开,提高秒杀活动的效率。
本发明还提供了一种秒杀活动处理装置,用以保证上述方法在实际中的实现及应用。
一种秒杀活动处理方法,包括:
当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;
基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;
生成请求成功的有效秒杀请求对应的客户的预留订单;
当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
上述的方法,可选的,还包括:
获取所述web服务器的服务器信息;
基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量。
上述的方法,可选的,所述控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求,包括:
获取每个所述请求信息中包含的源IP和URL地址,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址;
控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求;
若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
上述的方法,可选的,还包括:
获取秒杀活动的活动信息,确定所述活动信息中包含的活动库存;
应用预设的列表存储指令Lpush,将所述活动库存对应的各个库存名额存入所述Redis。
上述的方法,可选的,所述基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求,包括:
应用预设的列表监控指令Llen实时监控所述Redis中是否存在待匹配的库存名额;
当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配;
当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功。
一种秒杀活动处理装置,包括:
第一获取单元,用于当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
过滤单元,用于控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;
确定单元,用于基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;
生成单元,用于生成请求成功的有效秒杀请求对应的客户的预留订单;
结算单元,用于当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
上述的装置,可选的,还包括:
第二获取单元,用于获取所述web服务器的服务器信息;
配置单元,用于基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量。
上述的装置,可选的,所述过滤单元,包括:
第一获取子单元,用于获取每个所述请求信息中包含的源IP和URL地址,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址;
检验子单元,用于控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求;
过滤子单元,用于若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
上述的装置,可选的,还包括:
第三获取子单元,用于获取秒杀活动的活动信息,确定所述活动信息中包含的活动库存;
存储单元,用于应用预设的列表存储指令Lpush,将所述活动库存对应的各个库存名额存入所述Redis。
上述的装置,可选的,所述确定单元,包括:
应用预设的列表监控指令Llen实时监控所述Redis中是否存在待匹配的库存名额;
匹配子单元,用于当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配;
生成子单元,用于当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
存储子单元,用于控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的秒杀活动处理方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的秒杀活动处理方法。
与现有技术相比,本发明包括以下优点:
本发明提供一种秒杀活动处理方法,包括:当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;生成请求成功的有效秒杀请求对应的客户的预留订单;当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。应用本发明提供的方法,可以限制秒杀请求的数量,避免瞬间请求的高并发量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种秒杀活动处理方法的方法流程图;
图2为本发明实施例提供的一种秒杀活动处理方法的又一方法流程图;
图3为本发明实施例提供的一种秒杀活动处理方法的示意图;
图4为本发明实施例提供的一种秒杀活动处理装置的装置结构图;
图5为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本发明实施例提供了一种秒杀活动处理方法,该方法可以应用在多种***平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:
S101:当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息。
需要说明的是,Web服务器可以是nginx,web服务器可以进行高并发参数的配置。网关为微服务网关,其设置有令牌桶算法用于对访问流量进行限制。微服务器用于处理秒杀活动的活动请求。
在本实施例中,大批量用户在秒杀时间开始时,通过客户端向Web服务器发送秒杀请求,Web服务器将同一目标商品的批量秒杀请求发送经由网关发送至微服务器。请求信息中包括客户端的源IP、请求接口的URL地址以及用户信息等。
S102:控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求。
需要说明的是,在大批量的秒杀请求中,存在部分的秒杀请求属于无效的秒杀请求,例如用户恶意刷单或者用户多次发出秒杀请求。针对部分无效的秒杀请求,对其进行滤除,保留有效秒杀请求。
S103:基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求。
需要说明的是,库存名额为Redis中的一个元素,在Redis中设置一个key用于存储秒杀活动的库存名额。Lpop为Redis中用于删除并返回存在于key中元素的指令。
在本实施例中,在多个有效秒杀请求中,可以只有部分秒杀请求请求成功,也可以是所有的有效秒杀请求请求成功,通过Lpop将各个有效秒杀请求与各个库存名额进行匹配,匹配成功的秒杀请求则请求成功。
进一步地,在Redis中存入库存名额的过程为:获取秒杀活动的活动信息,确定活动信息中包含的活动库存数量;应用预设的列表存储指令Lpush,将活动库存数量对应的各个库存名额存入Redis。其中,Lpush用于往Redis中添加数据,即,往Redis中添加库存名额。
在本发明实施例中,秒杀开始前,将库存大小Lpush到redis队列中。秒杀开始后,使用Lpop方法弹出库存,当商品还有库存,则从队列中移除一个,否则返回nil;Redis的Lpop方法为原子操作,避免了多线程复杂逻辑下多步检查带来的ABA问题。
S104:生成请求成功的有效秒杀请求对应的客户的预留订单。
需要说明的是,预留订单中包含商品名称、价格、类型、秒杀时间以及商品预留号等。
在本实施例中,客户请求成功后,生成预留订单,将该预留订单与用户的用户账户进行绑定,锁定客户请求成功的库存名额。
S105:当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
需要说明的是,结算订单包含商品名称、价格、类型、秒杀时间、结算时间以及商品单号等。
在本实施例中,客户在请求成功后可以选择进行支付清单,并发送预留订单对应的订单提交请求。基于订单提交请求对用户的支付账户进行扣款结算,成功扣款后生成结算订单。
本发明实施例提供的秒杀活动处理方法中,当检测到批量的秒杀请求时,获取每个秒杀请求对应的请求信息,基于请求信息对批量的秒杀请求进行过滤,仅保留有效秒杀请求,从而对请求整体进行限流。将秒杀活动的库存名额存储于Redis中,在确定各个有效秒杀请求后,应用Redis的Lpop确定各个有效秒杀请求中的请求成功的有效秒杀请求。有效秒杀请求请求成功后,生成对应的预留订单,当客户发送该预留订单对应的订单提交请求时,对预留订单进行结算,生成结算订单。
基于上述实施例提供的方法,本发明提供的一种秒杀活动处理方法有以下具体实施过程:
处理器检测到web服务器发送100个秒杀请求时,获取100个秒杀请求分别对应的请求信息,基于请求信息对100个秒杀请求进行过滤后仅保留50个秒杀请求为有效秒杀请求。若秒杀活动中的活动库存只有10个库存名额,则通过Lpop将Redis中的10库存名额分配给10有效秒杀请求对应的客户,确定被分配库存名额的有效秒杀请求为请求成功的有效秒杀请求,并生成该请求对应的客户的预留订单。当客户提交订单时发出订单提交请求,处理器根据订单提交请求对预留订单进行结算,结算完成后生成结算订单。
应用本发明实施例提供的方法,可以限制秒杀请求的数量,并将抢购和下单过程分开,提高秒杀活动的效率。
本发明实施例提供的方法中,基于请求信息对各个秒杀请求进行过滤之前,可以先由web服务器进行初步的过滤,具体包括:
获取所述web服务器的服务器信息;
基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量。
需要说明的是,配置并发参数包括配置进程数据、最大连接数以及超时时间等,通过配置并发参数来限制瞬间发出秒杀请求的总人数。例如,秒杀请求所占用的进程超出并发参数中的进程数据,或请求对应的客户端接入web服务器的客户端的数量超出最大连接数,或发送秒杀请求超时,web服务器都会将该秒杀请求限流,通过并发参数控制秒杀请求上限值,限制经由网关向微服务器发出秒杀请求的数量。
参考图2,在通过web的初步限流后,可以所述基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效的秒杀请求,包括:
S201:获取每个所述请求信息中包含的源IP和URL地址。
其中,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址。
需要说明的是,该请求接口可以是客户的客户端与web服务器之间的请求接口,Web服务器包含至少一个请求接口与客户端进行对接,并通过请求接口接收客户发送的请求。
S202:控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求。
需要说明的是,当一个请求接口接收到多个相同的源IP对应的客户端发送的秒杀请求,表征该客户端重复发送同一个秒杀活动的秒杀请求。网关内设置有令牌桶算法,可以通过令牌桶算法中设置的令牌桶容量、每秒可允许的最大完成请求数进一步限制访问流量。
S203:若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
需要说明的是,为避免微服务器接收到的访问量过多导致服务器异常,剔除多余的秒杀请求,剩余的秒杀请求为有效秒杀请求。
可选的,微服务器作为对秒杀请求进行处理的服务器,web服务器除了接收客户的秒杀请求经由网关发送至微服务器之外,还可以接收其他类型的请求,由其他微服务器处理其他类型的请求。基于上述实施例的方法,本发明还可以提供一种微服务架构,如图3所示,该微服务架构包括web服务器、网关和多个微服务器,客户向web服务器发送包括秒杀请求在内的各种请求,web服务器将各种请求发送中网关,网关对各个请求进行过滤后,根据每个请求对应的请求类型,将该请求分配至对应的微服务器进行处理。其中,每个微服务器用于处理至少一种类型的请求。本实施例基于微服务架构搭漏斗式流量控制模型,以保证高并发场景下的可用性:微服务架构内可以部署多个节点的web服务器nginx,每个web服务器设置多个线程、最大连接数以及保持连接时间等并发参数作为漏斗的最大敞口;在微服务架构的网关上使用令牌桶算法,设置平均处理速率和令牌桶容量以及每秒可允许最大完成请求数等参数进一步限制访问流量,即,限制秒杀请求的数量。
基于本发明实施例的方法,控制网关对请求进行进一步的限流,进一步保证限制秒杀请求的数量,避免访问并发量过高导致微服务器异常。
本发明实施例提供的方法中,基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求,包括:
应用预设的列表监控指令Llen实时监控所述Redis中是否存在待匹配的库存名额;
当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配,并在匹配过程中应用预设的列表监控指令Llen,监控所述Redis中剩余被匹配的库存名额的数量;
当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功。
需要说明的是,Llen是redis中列表数据类型的一个方法,该方法用于获取列表中元素的个数,即库存名额。Redis中库存名额的数量小于秒杀请求的请求数量,在匹配过程中,一个库存名额可以只匹配一个秒杀请求。任意的秒杀请求未匹配上库存名额时,表征该秒杀请求请求失败。
本发明实施例中,秒杀请求在请求成功后,可以在Redis中新建一个key,将秒杀成功后,客户与库存名额绑定后生成的下单资格凭证保存在新建的key中。
可选的,Lpop将各个秒杀请求与各个库存名额进行匹配的过程中,可以按照各个秒杀请求的请求时间由早至晚的顺序进行匹配;也可以按照秒杀请求对应的客户的客户优先级进行匹配,其中,客户优先级可以按照客户类型进行设置,例如:会员客户的优先级大于普通客户的优先级;还可以随机将秒杀请求与库存名额进行匹配。
还需要说明的是,客户秒杀到商品后,页面跳转到订单提交页,输入收货地址,联系人等信息,提交订单时Llen查询Redis中缓存的下单资格,若存在资格则形成预留订单,并在Redis中移除下单资格。检查不通过跳转到提示界面“您未抢购到该商品”。这样设计方案,既可以提高秒杀响应率,又可以防止超卖,同时可以实现在秒杀过程中,客户临时处理别的事情,而不会影响他的秒杀抢购到的商品下单。因为Redis中已经缓存了客户的下单资格,在秒杀活动结束前随时可以进行下单支付。客户经过客户端加载商品详情页时,处理器使用Llen判断库存大小,如果Redis库存清零,则商品详情页显示无库存,抢购按钮置灰。如果客户已抢购到资格,跳过商品详情页,直接到订单提交页面。
本发明实施例提供的方法,使用Redis实现了秒杀抢购与订单支付分开,即在Redis中设置两个key,一个key存放秒杀库存名额,另一个key存放秒杀成功的下单资格凭证。根据Redis缓存的秒杀成功的信息,即,下单资格凭证,进行下单支付处理,这样既可以保证抢购成功数、库存数量、订单数的一致性,防止超卖现象,又可以有限成本下提高服务的处理性能。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
与图1所述的方法相对应,本发明实施例还提供了一种秒杀活动处理装置,用于对图1中方法的具体实现,本发明实施例提供的秒杀活动处理装置可以应用计算机终端或各种移动设备中,其结构示意图如图4所示,具体包括:
第一获取单元401,用于当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
过滤单元402,用于控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;
确定单元403,用于基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;
生成单元404,用于生成请求成功的有效秒杀请求对应的客户的预留订单;
结算单元405,用于当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
本发明实施例提供的秒杀活动处理装置中,当检测到批量的秒杀请求时,获取每个秒杀请求对应的请求信息,基于请求信息对批量的秒杀请求进行过滤,仅保留有效秒杀请求,从而对请求整体进行限流。将秒杀活动的库存名额存储于Redis中,在确定各个有效秒杀请求后,应用Redis的Lpop确定各个有效秒杀请求中的请求成功的有效秒杀请求。有效秒杀请求请求成功后,生成对应的预留订单,当客户发送该预留订单对应的订单提交请求时,对预留订单进行结算,生成结算订单。
应用本发明实施例提供的装置,可以限制秒杀请求的数量,并将抢购和下单过程分开,提高秒杀活动的效率。
本发明实施例提供的装置中,还包括:
第二获取单元,用于获取所述web服务器的服务器信息;
配置单元,用于基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量。
本发明实施例提供的装置中,所述过滤单元,包括:
第一获取子单元,用于获取每个所述请求信息中包含的源IP和URL地址,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址;
检验子单元,用于控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求;
过滤子单元,用于若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
本发明实施例提供的装置中,还包括:
第三获取子单元,用于获取秒杀活动的活动信息,确定所述活动信息中包含的活动库存;
存储单元,用于应用预设的列表存储指令Lpush,将所述活动库存对应的各个库存名额存入所述Redis。
本发明实施例提供的装置中,所述确定单元,包括:
应用预设的列表监控指令Llen实时监控所述Redis中是否存在待匹配的库存名额;
匹配子单元,用于当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配;
生成子单元,用于当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
存储子单元,用于控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功。
以上本发明实施例公开的秒杀活动处理装置中各个单元及子单元的具体工作过程,可参见本发明上述实施例公开的秒杀活动处理方法中的对应内容,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述秒杀活动处理方法。
本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;
基于预设的列表提取指令Lpop及预设的秒杀库存队列Redis中的各个库存名额,确定请求成功的各个有效秒杀请求;
生成请求成功的有效秒杀请求对应的客户的预留订单;
当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种秒杀活动处理方法,其特征在于,包括:
获取所述web服务器的服务器信息;
基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量;配置所述web服务器的并发参数,包括:配置进程数据、最大连接数以及超时时间;
当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;所述网关为微服务网关,且所述网关中设置有令牌算法,用于对访问流量进行限制;
应用预设的列表监控指令Llen实时监控Redis中是否存在待匹配的库存名额;
当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配;
当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功;
生成请求成功的有效秒杀请求对应的客户的预留订单;
当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
2.根据权利要求1所述的方法,其特征在于,所述控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求,包括:
获取每个所述请求信息中包含的源IP和URL地址,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址;
控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求;
若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
3.根据权利要求1所述的方法,其特征在于,还包括:
获取秒杀活动的活动信息,确定所述活动信息中包含的活动库存;
应用预设的列表存储指令Lpush,将所述活动库存对应的各个库存名额存入所述Redis。
4.一种秒杀活动处理装置,其特征在于,包括:
第二获取单元,用于获取所述web服务器的服务器信息;
配置单元,用于基于所述服务器信息,配置所述web服务器的并发参数,使得所述Web服务器基于所述并发参数限制发出的秒杀请求的数量;配置所述web服务器的并发参数,包括:配置进程数据、最大连接数以及超时时间;
第一获取单元,用于当检测到web服务器经由预设的网关向预设的微服务器发送目标商品的批量的秒杀请求时,获取每个秒杀请求对应的请求信息;
过滤单元,用于控制所述网关基于每个所述秒杀请求对应的请求信息,对各个所述秒杀请求进行过滤,保留满足预设秒杀条件的有效秒杀请求;所述网关为微服务网关,且所述网关中设置有令牌算法,用于对访问流量进行限制;
确定单元,包括:监控单元、匹配子单元、生成子单元以及存储子单元;
所述监控单元,用于应用预设的列表监控指令Llen实时监控Redis中是否存在待匹配的库存名额;
所述匹配子单元,用于当所述Llen监控到所述Redis中存在待匹配的库存名额,应用所述Lpop将各个所述秒杀请求与所述Redis中的各个库存名额一一对应进行匹配;
所述生成子单元,用于当任意的有效秒杀请求与任一库存名额匹配成功时,控制所述微服务器将所述有效秒杀请求对应的客户与该秒杀请求相匹配的库存名额绑定,生成所述客户对应的下单资格凭证;
所述存储子单元,用于控制所述微服务器将所述下单资格凭证成功存储至所述Redis后,确定所述有效秒杀请求请求成功;
生成单元,用于生成请求成功的有效秒杀请求对应的客户的预留订单;
结算单元,用于当接收到任意的预留订单对应的订单提交请求时,对所述预留订单进行结算,生成所述订单提交请求对应的结算订单。
5.根据权利要求4所述的装置,其特征在于,所述过滤单元,包括:
第一获取子单元,用于获取每个所述请求信息中包含的源IP和URL地址,所述源IP为发起秒杀请求的客户端的IP,所述URL地址为接收秒杀请求的请求接口对应的接口地址;
检验子单元,用于控制所述网关检验每个URL地址对应的请求接口是否接收多个相同的源IP对应的秒杀请求;
过滤子单元,用于若任意的URL地址对应的请求接口接收多个相同的源IP对应的秒杀请求,则在多个相同的源IP对应的秒杀请求中,仅保留一个秒杀请求作为有效秒杀请求。
6.根据权利要求4所述的装置,其特征在于,还包括:
第三获取子单元,用于获取秒杀活动的活动信息,确定所述活动信息中包含的活动库存;
存储单元,用于应用预设的列表存储指令Lpush,将所述活动库存对应的各个库存名额存入所述Redis。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364888.1A CN114445200B (zh) | 2022-04-08 | 2022-04-08 | 秒杀活动处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210364888.1A CN114445200B (zh) | 2022-04-08 | 2022-04-08 | 秒杀活动处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114445200A CN114445200A (zh) | 2022-05-06 |
CN114445200B true CN114445200B (zh) | 2022-07-26 |
Family
ID=81359897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210364888.1A Active CN114445200B (zh) | 2022-04-08 | 2022-04-08 | 秒杀活动处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114445200B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115776522A (zh) * | 2022-11-23 | 2023-03-10 | 紫光云技术有限公司 | 一种处理商品预订的高并发***及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539628B2 (en) * | 2000-03-21 | 2009-05-26 | Bennett James D | Online purchasing system supporting buyer affordability screening |
RU2662638C2 (ru) * | 2016-12-29 | 2018-07-26 | Валерий КАРДАНОВ | Способ одновременного запроса скидки у нескольких поставщиков на электронной площадке агрегатора товаров |
CN108897615B (zh) * | 2018-05-31 | 2023-06-13 | 康键信息技术(深圳)有限公司 | 秒杀请求处理方法、应用服务器集群及存储介质 |
CN113537852A (zh) * | 2020-04-14 | 2021-10-22 | 成都鼎桥通信技术有限公司 | 秒杀处理方法及*** |
CN112738252A (zh) * | 2020-12-30 | 2021-04-30 | 昆山巨星行动电子商务有限公司 | 一种电商高并发秒杀*** |
CN114240060A (zh) * | 2021-11-19 | 2022-03-25 | 上海浦东发展银行股份有限公司 | 风险控制方法、风险处理***、装置、服务器及存储介质 |
-
2022
- 2022-04-08 CN CN202210364888.1A patent/CN114445200B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114445200A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109493024B (zh) | 数字资产托管方法、设备和存储介质 | |
US20180114240A1 (en) | Method, server, and storage medium for processing order | |
US11126996B2 (en) | Settlement system, server device, terminal device, method and program | |
WO2010111091A1 (en) | Consumer due diligence for money transfer systems and methods | |
US20120166339A1 (en) | Payment system, purchasing system, and method for performing a plurality of payment processes | |
CN114445200B (zh) | 秒杀活动处理方法及装置 | |
CN102214334A (zh) | 一种网上支付方法、装置及*** | |
CN109729060A (zh) | 保单出单请求的处理方法、装置及设备 | |
JP2013504818A (ja) | Eコマースにおける製品の発売および撤去のための最適時間のシステムおよび方法 | |
CN110910558B (zh) | 银行网点排队方法及装置 | |
CN110728519A (zh) | 拒付任务的处理方法、装置和服务器 | |
CN109150952A (zh) | 用于异步整合和发送数据的***和方法 | |
CN111882358A (zh) | 基于直播平台的数据管控方法、设备、存储介质及装置 | |
JP6144110B2 (ja) | 支払処理システムおよびその方法 | |
JP2003178242A (ja) | 取引処理方法および取引処理システム | |
CN111105306A (zh) | 资源交易策略的确定方法、装置和服务器 | |
CN112036855B (zh) | 数据交互的处理方法、装置、设备及存储介质 | |
CN109272321A (zh) | 快速支付方法、装置、设备及计算机可读存储介质 | |
US11514449B2 (en) | Pre-authorization of non-activated payment instruments at specific merchants | |
KR20160025796A (ko) | 분할환전 처리 장치 및 방법 | |
JP6564118B1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
CN111445325A (zh) | ***信息处理方法、装置、***及存储介质 | |
JP2004213492A (ja) | ポイント管理装置 | |
US11157887B1 (en) | Blockchain-based transaction kiosk | |
CN110738480B (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 |