高并发业务场景处理方法、系统和存储介质技术方案

技术编号:31747125 阅读:33 留言:0更新日期:2022-01-05 16:27
本申请提供一种高并发业务场景处理方法、系统和存储介质,该系统包括:限流子系统、缓存库存查询子系统、真实库存查询子系统、订单子系统、支付子系统和真实库存量处理子系统,将高并发业务根据业务流程进行合理划分,将整体的业务流程拆分为多个子系统,每个子系统独立完成自身的业务,并在自身业务完成后调用起一个业务流程的子系统,从而完成整个业务流程。每个子系统处理的业务量少,响应时长短,处理速度快,通过各子系统的配合运行,提高瞬时高并发业务场景的并发量,用户体验好。并且,各子系统之间相对独立,提高系统的容错性,当其中一个子系统发生更改时,不影响其他子系统的使用,应用于不同场景,灵活性强,适用性强。适用性强。适用性强。

【技术实现步骤摘要】
高并发业务场景处理方法、系统和存储介质


[0001]本申请涉及计算机
,尤其涉及一种高并发业务场景处理方法、系统和存储介质。

技术介绍

[0002]随着信息时代的迅速发展,拥有超大用户规模的应用和服务越来越多,作为现代电商的重要促销手段,对商品秒杀、抢红包的秒杀活动的需求越来越多。其中,秒杀活动具有瞬时高并发、库存有限不能超卖的特点。
[0003]秒杀系统处理的是大量用户瞬时对有限商品的激烈竞争,它的高并发点出在前端用户秒杀商品环节,其核心是高并发库存的高效处理。因此,在秒杀活动中,需要秒杀活动各环节之间配合,保障秒杀活动的高效进行。
[0004]而现有技术的秒杀系统,当大量用户在短时间内同时涌入对商品进行抢购时,由于秒杀系统在短时间内需要处理的任务较多,秒杀系统处理速度较慢,并且,容易出错,从而影响秒杀活动的顺利进行,降低用户体验。

技术实现思路

[0005]本申请提供一种高并发业务场景处理方法、系统和存储介质,用以支持瞬时高并发的秒杀场景,提高用户体验。
[0006]第一方面,本申请提供一种高并发业务场景处理方法,应用于高并发业务场景处理系统,所述高并发业务场景处理系统包括:
[0007]限流子系统、缓存库存查询子系统、真实库存查询子系统、订单子系统、支付子系统和真实库存量处理子系统;
[0008]所述方法包括:
[0009]所述限流子系统在接收到N个用户的下单请求时,利用nginx调用所述缓存库存查询子系统,查询redis中当前缓存的库存量,并根据当前缓存的库存量,接受M个用户的下单请求,其中,所述用户的下单请求包括用户的标识,M为小于或等于N的正整数,且N为大于或等于1的整数;
[0010]所述缓存库存查询子系统在接收到用户下单请求时,查询redis中当前缓存的库存量,并向所述M个用户发送令牌,将所述令牌保存在所述redis中,使所述M个用户进入到消息队列中,其中,所述消息队列采用先进先出的规则;
[0011]所述真实库存查询子系统根据所述消息队列中当前处于第一位的用户的下单请求,查询数据库中的真实库存量,在所述数据库中的库存量大于预设库存量时,调用所述订单子系统;
[0012]所述订单子系统根据所述消息队列中当前处于第一位的用户的下单请求,允许所述用户下单,并获取到用户提交的订单请求,调用所述支付子系统;
[0013]所述支付子系统获取所述消息队列中当前处于第一位的用户的令牌,确定在所述
redis中存在所述消息队列中当前处于第一位的用户的令牌时,进入支付页面进行支付,并在所述用户支付成功后,删除所述redis中存在的所述消息队列中当前处于第一位的用户的令牌,调用所述真实库存量处理子系统;
[0014]所述真实库存量处理子系统根据所述消息队列中当前处于第一位的用户的下单量,扣减所述数据库中的库存量。
[0015]可选的,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还包括:
[0016]所述限流子系统根据所述下单请求对应的用户的标识判断黑名单中是否包括所述用户的标识;
[0017]在所述黑名单中不包括所述用户的标识时,根据当前缓存的库存量,接受M个用户的下单请求。
[0018]可选的,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还包括:
[0019]根据所述用户的标识,判断所述用户提交下单请求的频率是否小于或等于预设频次;
[0020]在所述用户提交下单请求的频率小于或等于预设频次时,根据当前缓存的库存量,接受M个用户的下单请求。
[0021]可选的,所述支付子系统获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,根据支付逻辑进入支付页面进行支付,包括:
[0022]根据所述用户的标识,判断所述用户是否为支付优先级高的用户;
[0023]若所述用户为支付优先级高的用户,获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,直接进入所述支付页面进行支付。
[0024]可选的,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求,包括:
[0025]获取所述N个用户中的每个用户提交下单请求时的请求时间;
[0026]按照所述每个用户提交下单请求时的请求时间的先后顺序,接受所述N个用户中提交下单请求时的请求时间位于前M个的用户的下单请求。
[0027]第二方面,本申请提供一种高并发业务场景处理系统,包括:
[0028]限流子系统、缓存库存查询子系统、真实库存查询子系统、订单子系统、支付子系统和真实库存量处理子系统;
[0029]所述限流子系统,用于在接收到N个用户的下单请求时,利用nginx调用所述缓存库存查询子系统,查询redis中当前缓存的库存量,并根据当前缓存的库存量,接受M个用户的下单请求,其中,所述用户的下单请求包括用户的标识,M为小于或等于N的正整数,且N为大于或等于1的整数;
[0030]所述缓存库存查询子系统,用于在接收到用户下单请求时,查询redis中当前缓存的库存量,并向所述M个用户发送令牌,将所述令牌保存在所述redis中,使所述M个用户进入到消息队列中,其中,所述消息队列采用先进先出的规则;
[0031]所述真实库存查询子系统,用于根据所述消息队列中当前处于第一位的用户的下
单请求,查询数据库中的真实库存量,在所述数据库中的库存量大于预设库存量时,调用所述订单子系统;
[0032]所述订单子系统,用于根据所述消息队列中当前处于第一位的用户的下单请求,允许所述用户下单,并获取到用户提交的订单请求,调用所述支付子系统;
[0033]所述支付子系统,用于获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,进入支付页面进行支付,并在所述用户支付成功后,删除所述redis中存在的所述消息队列中当前处于第一位的用户的令牌,调用所述真实库存量处理子系统;
[0034]所述真实库存量处理子系统,用于根据所述消息队列中当前处于第一位的用户的下单量,扣减所述数据库中的库存量。
[0035]可选的,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还用于:
[0036]所述限流子系统根据所述下单请求对应的用户的标识判断黑名单中是否包括所述用户的标识;
[0037]在所述黑名单中不包括所述用户的标识时,根据当前缓存的库存量,接受M个用户的下单请求。
[0038]可选的,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还用于:
[0039]根据所述用户的标识,判断所述用户提交下单请求的频率是否小于或等于预设频次;
[0040]在所述用户提交下单请求的频率小于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高并发业务场景处理方法,其特征在于,应用于高并发业务场景处理系统,所述高并发业务场景处理系统包括:限流子系统、缓存库存查询子系统、真实库存查询子系统、订单子系统、支付子系统和真实库存量处理子系统;所述方法包括:所述限流子系统在接收到N个用户的下单请求时,利用nginx调用所述缓存库存查询子系统,查询redis中当前缓存的库存量,并根据当前缓存的库存量,接受M个用户的下单请求,其中,所述用户的下单请求包括用户的标识,M为小于或等于N的正整数,且N为大于或等于1的整数;所述缓存库存查询子系统在接收到用户下单请求时,查询redis中当前缓存的库存量,并向所述M个用户发送令牌,将所述令牌保存在所述redis中,使所述M个用户进入到消息队列中,其中,所述消息队列采用先进先出的规则;所述真实库存查询子系统根据所述消息队列中当前处于第一位的用户的下单请求,查询数据库中的真实库存量,在所述数据库中的库存量大于预设库存量时,调用所述订单子系统;所述订单子系统根据所述消息队列中当前处于第一位的用户的下单请求,允许所述用户下单,并获取到用户提交的订单请求,调用所述支付子系统;所述支付子系统获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,进入支付页面进行支付,并在所述用户支付成功后,删除所述redis中存在的所述消息队列中当前处于第一位的用户的令牌,调用所述真实库存量处理子系统;所述真实库存量处理子系统根据所述消息队列中当前处于第一位的用户的下单量,扣减所述数据库中的库存量。2.根据权利要求1所述的方法,其特征在于,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还包括:所述限流子系统根据所述下单请求对应的用户的标识判断黑名单中是否包括所述用户的标识;在所述黑名单中不包括所述用户的标识时,根据当前缓存的库存量,接受M个用户的下单请求。3.根据权利要求1所述的方法,其特征在于,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求之前,还包括:根据所述用户的标识,判断所述用户提交下单请求的频率是否小于或等于预设频次;在所述用户提交下单请求的频率小于或等于预设频次时,根据当前缓存的库存量,接受M个用户的下单请求。4.根据权利要求1

3任一项所述的方法,其特征在于,所述支付子系统获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,根据支付逻辑进入支付页面进行支付,包括:根据所述用户的标识,判断所述用户是否为支付优先级高的用户;若所述用户为支付优先级高的用户,获取所述消息队列中当前处于第一位的用户的令牌,确定在所述redis中存在所述消息队列中当前处于第一位的用户的令牌时,直接进入所
述支付页面进行支付。5.根据权利要求1

3任一项所述的方法,其特征在于,所述限流子系统根据当前缓存的库存量,接受M个用户的下单请求,包括:获取所述N个用户中的每...

【专利技术属性】
技术研发人员:傅鹏斌梁训虎宗超刘琳
申请(专利权)人:中通服科信信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1