[发明专利]基于Redis与Kafka的线上抢购系统高并发场景处理方法及装置有效
申请号: | 201810181830.7 | 申请日: | 2018-03-06 |
公开(公告)号: | CN108418821B | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | 戴上静;李杰;战绪森 | 申请(专利权)人: | 北京焦点新干线信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/32;G06Q30/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 古利兰;王宝筠 |
地址: | 100086 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 redis kafka 线上 抢购 系统 并发 场景 处理 方法 装置 | ||
1.一种基于Redis与Kafka的线上抢购系统高并发场景处理方法,其特征在于,包括:
基于用户登录请求生成登录令牌;
将所述登录令牌写入前端Cookie和后端Redis缓存中;
校验前端登录令牌与后端登录令牌是否匹配,若否,则返回操作失败结果,若是,则:
判断所述登录令牌是否有效,若否,则返回操作失败结果,若是,则:
获取用户频率锁;
基于所述频率锁判断所述用户的访问频率是否超过预设阈值,若是,则返回操作失败结果,若否,则:
判断是否获取到对应商品的商品锁,若否,则返回操作失败结果,若是,则:
将抢购成功的请求数据推送给Kafka消息队列。
2.根据权利要求1所述的方法,其特征在于,所述基于用户登录请求生成登录令牌包括:
记录所述用户登录的时间戳;
将所述时间戳与用户ID拼接字符串;
通过Hash运算生成所述登录令牌。
3.根据权利要求1所述的方法,其特征在于,所述将抢购成功的请求数据推送给Kafka消息队列后,还包括:
消费所述Kafka消息队列中的记录,将所述抢购成功的请求数据写入数据库;
发送通知短信给用户;
通过WebSocket传递成交记录给前端前台。
4.根据权利要求1所述的方法,其特征在于,所述将所述登录令牌写入前端Cookie和后端Redis缓存中后,还包括:
记录所述用户的访问次数;
判断基于所述访问次数做Hash生成的防作弊校验码是否合法,若否,则:
返回操作失败结果。
5.一种基于Redis与Kafka的线上抢购系统高并发场景处理装置,其特征在于,包括:
生成模块,用于基于用户登录请求生成登录令牌;
第一写入模块,用于将所述登录令牌写入前端Cookie和后端Redis缓存中;
校验模块,用于校验前端登录令牌与后端登录令牌是否匹配;
返回模块,用于当前端登录令牌与后端登录令牌不匹配时,返回操作失败结果;
第一判断模块,用于当前端登录令牌与后端登录令牌匹配时,判断所述登录令牌是否有效;
所述返回模块,还用于当所述用户登录令牌无效时,返回操作失败结果;
获取模块,用于获取用户频率锁;
第四判断模块,用于基于所述频率锁判断所述用户的访问频率是否超过预设阈值;
所述返回模块,还用于当基于所述频率锁判断所述用户的访问频率超过预设阈值时,返回操作失败结果;
第二判断模块,用于当所述用户登录令牌有效时,判断是否获取到对应商品的商品锁;
所述返回模块,还用于当未获取到对应商品的商品锁时,返回操作失败结果;
推送模块,用于当获取到对应商品的商品锁时,将抢购成功的请求数据推送给Kafka消息队列。
6.根据权利要求5所述的装置,其特征在于,所述生成模块具体用于:
记录所述用户登录的时间戳;
将所述时间戳与用户ID拼接字符串;
通过Hash运算生成所述登录令牌。
7.根据权利要求5所述的装置,其特征在于,还包括:
第二写入模块,用于消费所述Kafka消息队列中的记录,将所述抢购成功的请求数据写入数据库;
发送模块,用于发送通知短信给用户;
传递模块,用于通过WebSocket传递成交记录给前端前台。
8.根据权利要求5所述的装置,其特征在于,还包括:
记录模块,用于记录所述用户的访问次数;
第三判断模块,用于判断基于所述访问次数做Hash生成的防作弊校验码是否合法;
所述返回模块,还用于当基于所述访问次数做Hash生成的防作弊校验码不合法时,返回操作失败结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京焦点新干线信息技术有限公司,未经北京焦点新干线信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810181830.7/1.html,转载请声明来源钻瓜专利网。