线上抢购系统高并发场景处理方法技术方案

技术编号:29335608 阅读:15 留言:0更新日期:2021-07-20 17:54
本发明专利技术公开了线上抢购系统高并发场景处理方法,包括基于用户登录请求获取用户资格;判断用户资格是否有效,若否,则返回操作失败结果,若是,则:判断用户当前IP是否在IP白名单内,若是,则返回操作失败结果,若否,则:将用户当前IP通过nginx配置至IP白名单内;接收用户的购买请求,并将该用户发送的购买请求推送至其专有的消息队列中;从消息队列中只提取一个购买请求进行购买操作,判断是否成功购买,若否,则返回操作失败结果,若是,则:将购买请求写入服务器,并通过WebSocket传递成交记录给前端前台。本发明专利技术解决用户重复发送请求的问题。

【技术实现步骤摘要】
线上抢购系统高并发场景处理方法
本专利技术属于高并发场景处理
,尤其涉及一种线上抢购系统高并发场景处理方法。
技术介绍
随着互联网的发展和电商平台的普及,在线抢购的活动几乎每时每刻都发生在我们的生活圈里。抢购进行时服务器会收到了“海量”的请求,但实际“海量”的请求里面的有大量的垃圾请求。不少用户及黄牛,为了抢到商品,会使用“刷票工具”等类型的辅助工具,帮助他们发送尽可能多的请求到服务器。或制作强大的自动请求脚本。如何有效的防止这种作弊手段是亟待解决的问题。
技术实现思路
本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供线上抢购系统高并发场景处理方法,其从对用户资格进行判断,筛除掉无效的用户,进一步对用户的IP进行判断,使一个IP上只能有一个用户,并通过nginx配置进行负载均衡,最后为每个用户设立一个专有的消息队列存放发送的购买请求,解决用户重复发送请求的问题。为解决上述技术问题,本专利技术采用的技术方案是:一种线上抢购系统高并发场景处理方法,包括:基于用户登录请求获取用户资格;判断用户资格是否有效,若否,则返回操作失败结果,若是,则:判断用户当前IP是否在IP白名单内,若是,则返回操作失败结果,若否,则:将用户当前IP通过nginx配置至IP白名单内;接收用户的购买请求,并将该用户发送的购买请求推送至其专有的消息队列中;从消息队列中只提取一个购买请求进行购买操作,判断是否成功购买,若否,则返回操作失败结果,若是,则:将购买请求写入服务器,并通过WebSocket传递成交记录给前端前台。上述线上抢购系统高并发场景处理方法,判断用户资格是否有效时,包括:判断用户资格是否已经缓存在redis中,若是,则用户资格有效。上述线上抢购系统高并发场景处理方法,还包括:当用户下线时,将用户在IP白名单内的IP删除。上述线上抢购系统高并发场景处理方法,还包括:利用元素静态化处理将前端页面上除“抢购按钮”外的其他元素处理为静态数据,并将静态数据缓存在浏览器和CDN上。上述线上抢购系统高并发场景处理方法,在所述服务器上配置hystrix熔断机制。本专利技术与现有技术相比具有以下优点:1、本专利技术通过对用户的资格进行判断,筛除掉无效的用户,减少对服务器的访问请求源。2、本专利技术通过对用户的IP进行判断,使一个IP上只能有一个用户,有效防止一个IP上挂设多个账号的问题。3、本专利技术通过对每个用户设立一个专有的消息队列存放发送的购买请求,解决用户重复发送请求的问题。综上所述,本专利技术其从对用户资格进行判断,筛除掉无效的用户,进一步,并通过nginx配置进行负载均衡,最后为每个用户设立一个专有的消息队列存放发送的购买请求,解决用户重复发送请求的问题。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明图1为本专利技术的方法流程图。具体实施方式如图1所示,一种线上抢购系统高并发场景处理方法,包括以下步骤:S1、基于用户登录请求获取用户资格;当在线上抢购系统中需要对高并发场景的海量请求进行处理时,首先获取用户的资格信息,用户资格由用户ID和系统发放给用户的权限组成。S2、判断用户资格是否有效,若否,则进入S3;若是,则进入S4;判断用户资格是否有效时,包括:判断用户资格是否已经缓存在redis中,若是,则用户资格有效。通过在抢购活动开始前,将有效的用户资格缓存在redis中,一方面能够有效的筛除掉无效的用户,减少对服务器的访问请求源,另一方面能够减少服务器的压力。S3、返回操作失败结果;S4、判断用户当前IP是否在IP白名单内,若是,则进入S3;若否,则进入S5;S5、将用户当前IP通过nginx配置至IP白名单内;判断用户当前IP是否在IP白名单内,若是,则说明当前IP已经有其他用户在用,返回操作失败结果;若否,则将用户当前IP通过nginx配置至IP白名单内;通过这样,一方面使一个IP上只能有一个用户,有效防止一个IP上挂设多个账号的问题,另一方面通过nginx的反向代理实现负载均衡。S6、接收用户的购买请求,并将该用户发送的购买请求推送至其专有的消息队列中;S7、从消息队列中只提取一个购买请求进行购买操作,判断是否成功购买,若否,则进入S3,若是,则进入S8;通过对用户设立一个专有的消息队列存放发送的购买请求,使用户重复发送的购买请求均只能存放在消息队列中,最后只输出一个购买请求,解决用户重复发送请求的问题。购买请求进行购买操作为现有技术,此处不在赘述。S8、将购买请求写入服务器,并通过WebSocket传递成交记录给前端前台。本实施例中,还包括:S9、当用户下线时,将用户在IP白名单内的IP删除。通过此方法,使用户在更换IP进行登录执行抢购操作能够实现。本实施例中,还包括:利用元素静态化处理将前端页面上除“抢购按钮”外的其他元素处理为静态数据,并将静态数据缓存在浏览器和CDN上。对于抢购商品时的前端页面尽量将能静态化的元素静态化处理,除了抢购按钮需要服务器进行动态判断,其他的静态数据可以缓存在浏览器和CDN上。这样,抢购前刷新页面导致的流量进入服务器的流量只有很小的一部分。本实施例中,在所述服务器上配置hystrix熔断机制,能够保证在抢购系统异常情况下也能走通整个抢购流程。以上所述,仅是本专利技术的较佳实施例,并非对本专利技术作任何限制,凡是根据本专利技术技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本专利技术技术方案的保护范围内。本文档来自技高网...

【技术保护点】
1.线上抢购系统高并发场景处理方法,其特征在于,包括:/n基于用户登录请求获取用户资格;/n判断用户资格是否有效,若否,则返回操作失败结果,若是,则:/n判断用户当前IP是否在IP白名单内,若是,则返回操作失败结果,若否,则:/n将用户当前IP通过nginx配置至IP白名单内;/n接收用户的购买请求,并将该用户发送的购买请求推送至其专有的消息队列中;/n从消息队列中只提取一个购买请求进行购买操作,判断是否成功购买,若否,则返回操作失败结果,若是,则:/n将购买请求写入服务器,并通过WebSocket传递成交记录给前端前台。/n

【技术特征摘要】
1.线上抢购系统高并发场景处理方法,其特征在于,包括:
基于用户登录请求获取用户资格;
判断用户资格是否有效,若否,则返回操作失败结果,若是,则:
判断用户当前IP是否在IP白名单内,若是,则返回操作失败结果,若否,则:
将用户当前IP通过nginx配置至IP白名单内;
接收用户的购买请求,并将该用户发送的购买请求推送至其专有的消息队列中;
从消息队列中只提取一个购买请求进行购买操作,判断是否成功购买,若否,则返回操作失败结果,若是,则:
将购买请求写入服务器,并通过WebSocket传递成交记录给前端前台。


2.按照权利要求1所述的线上抢购系统高并...

【专利技术属性】
技术研发人员:李方进
申请(专利权)人:上海静客网络科技有限公司
类型:发明
国别省市:上海;31

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

1