一种实现积分抢货功能的方法及系统技术方案

技术编号:33542384 阅读:14 留言:0更新日期:2022-05-21 09:53
本发明专利技术公开了一种实现积分抢货功能的方法及系统,属于电子商务技术领域,该方法使用缓存技术与队列技术实现用户使用在电子商务平台积攒的积分参与平台设置的兑换活动,包括活动设置、服务调用方设置、网关层设置和服务层设置;所述活动设置,设置活动物料表,用于存放兑换活动中所使用的商品与库存信息,并随着活动结束而失效;活动规则信息存入活动规则表,根据规则表中的信息判断用户是否有参与资格;服务调用方设置用于防止重复提交和前置判断;网关层设置用于拦截、放行,以及对抢货接口的限流,处理异常问题时的熔断。本发明专利技术能够处理积分抢货业务中出现的数据访问高峰,解决数据库链接占用问题,减少积分抢货业务对整个系统的冲击。统的冲击。统的冲击。

【技术实现步骤摘要】
一种实现积分抢货功能的方法及系统


[0001]本专利技术涉及电子商务
,具体地说是一种实现积分抢货功能的方法及系统。

技术介绍

[0002]目前基于数据库实现的积分抢货功能,由于大量请求直接访问数据库,容易造成请求堆积将数据库链接占满,致使其他业务无法访问数据库而导致系统崩溃。

技术实现思路

[0003]本专利技术的技术任务是针对以上不足之处,提供一种实现积分抢货功能的方法及系统,能够处理积分抢货业务中出现的数据访问高峰,解决数据库链接占用问题,减少积分抢货业务对整个系统的冲击。
[0004]本专利技术解决其技术问题所采用的技术方案是:
[0005]一种实现积分抢货功能的方法,使用缓存技术与队列技术实现用户使用在电子商务平台积攒的积分参与平台设置的兑换活动,包括活动设置、服务调用方设置、网关层设置和服务层设置;
[0006]所述活动设置,设置活动物料表,用于存放兑换活动中所使用的商品与库存信息,并随着活动结束而失效;活动规则信息存入活动规则表,根据规则表中的信息判断用户是否有参与资格;
[0007]服务调用方设置用于防止重复提交和前置判断;
[0008]网关层设置用于拦截、放行,以及对抢货接口的限流,处理异常问题时的熔断;
[0009]服务层设置包括根据条件判断是否满足抢货条件、扣减库存、扣减积分、更新兑换累加数量、订单生成和异常处理。
[0010]本方法使用缓存与队列技术降低积分抢货业务中出现的数据访问高峰,减少积分抢货业务对整个系统的冲击,同时提高积分兑换业务的稳定性和准确性,让整个业务平稳进行,数据有效落盘,客户及时获知兑换业务结果。
[0011]优选的,所述活动设置,在上架活动时,将活动所需商品详情及数量单独存入活动物料表,并将库存信息缓存入redis,设置为长期有效;
[0012]修库存时需要更新Redis中的库存数;
[0013]活动下架后删除Redis库存。
[0014]进一步的,活动物料表商品、库存与商品表、库存表信息不冲突,商品、库存表信息为普通销售过程所使用的商品与库存信息,物料表则为兑换活动中所使用的商品与库存信息,是临时性的,随着活动结束而失效。如果需要产生联系则可以在物料设置时在库存表扣减对应数量的库存,当活动结束时将没有卖完的库存量回退到库存表中,从而使活动物料表与商品表、库存表产生联系。
[0015]优选的,活动规则信息包括参与活动的限制性信息,如:活动开始结束时间、商品
兑换个数限制、参与者类型限制、参与者级别限制;
[0016]活动规则信息存入活动规则表,后续根据规则表中的信息判断用户是否有参与资格;
[0017]可通过添加用户商品兑换量累计表,大数据通过汇总业务表数据,得到用户活动商品周、月、总兑换量汇总数据,此类规则通过大数据汇总后回写MySQL。
[0018]优选的,所述服务调用方设置包括:
[0019]页面静态化:把兑换商品详情页做成静态页面,把商品参数信息包括商品详情及价格全部放在静态页面里,然后上传到CDN上预热,这样大量的商品详情页访问请求不用访问源站;
[0020]防止重复提交:前端页面相关按钮点击后置灰,防止重复提交;根据接口返回的结果和活动规则判断是否让用户可以继续点击抢货;
[0021]前置判断:如果活动已经结束或库存为0则不再调用接口/限量。
[0022]优选的,所述网关层设置包括:
[0023]拦截:对黑名单IP/用户拦截;为防止前端恶意请求、攻击脚本,在网关层对接口按UserId限制访问次数;
[0024]放行:根据抢货商品的库存数放行请求,超过库存个数的请求直接返回抢货失败;
[0025]限流:根据现有的服务集群估算能够处理的最大请求数,对抢货接口限流;
[0026]熔断:服务接口出现紧急问题无法正确提供服务时熔断,包括数据库长时间锁表、数据异常错误及流量攻击,处理完异常问题后恢复服务。
[0027]优选的,服务层设置包括:校验、扣减Redis库存、扣减积分、更新兑换累加数量、订单生成和异常处理,
[0028]所述校验完成抢货所需判断,包括店铺相关内容、活动相关内容和兑换数量相关内容,根据条件判断,如果不满足条件则返回对应信息;
[0029]所述扣减Redis库存,将库存数量预置进redis中,通过redis扣减库存,如redis库存扣完则返回库存不足;
[0030]先判断是否有key,如果有key先查询值,如果查询出来的值大于要扣减的数则执行扣减,完成后再查询扣减结果,扣减结果大于0流程继续,小于0则返回库存不足,然后加扣减值;
[0031]所述扣减积分,redis中扣减库存成功后扣减积分、写入积分明细;
[0032]所述更新兑换累加数量扣减积分完成后,更新用户单个商品周兑换量累加值、用户单个商品总兑换量累加值、用户全商品总兑换量累加值;成功后将订单信息放入MQ异步消费,并向前端返回成功消息;扣减积分和兑换限制数量更新放到一个事务中;
[0033]所述订单生成,在缓存中库存、数据库中积分、兑换限制数量更新成功后,通过MQ发送订单信息,并使消息平均分布在32个队列中,消费订单信息的服务通过单个写库或批量写库两种方式处理:
[0034]单个写库:消息消费端按照正常流程扣减库存,写入订单信息,单个消费可以写在一个事务中,如有问题可以单个回滚,补偿积分也比较方便;
[0035]批量写库:消费端取出消息后再次缓存,每隔1秒或者积攒100条订单信息批量写入数据库一次,计算生成订单的消息中需要扣减的库存数总和,使用总和扣减库存;
[0036]所述异常处理,若发生最终扣减库存失败的情况,需要跟踪是否为程序漏洞导致的扣减失败;异常情况下未能落单,进行积分和Redis库存补偿,同时处理兑换限制数量,或者处理数据生成订单。
[0037]本专利技术还要求保护一种实现积分抢货功能的系统,包括活动设置模块、服务调用设置模块、网关层设置模块和服务层设置模块,
[0038]该系统实现上述的实现积分抢货功能的方法。
[0039]本专利技术还要求保护一种实现积分抢货功能的装置,包括:至少一个存储器和至少一个处理器;
[0040]所述至少一个存储器,用于存储机器可读程序;
[0041]所述至少一个处理器,用于调用所述机器可读程序,执行上述的实现积分抢货功能的方法。
[0042]本专利技术还要求保护计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述的实现积分抢货功能的方法。
[0043]本专利技术的一种实现积分抢货功能的方法及系统与现有技术相比,具有以下有益效果:
[0044]本方法基于缓存与队列技术实现积分抢货功能,实现了客户流量的平稳消费,提高了抢货过程处理能力,降低了抢货业务对整个系统的冲击,同时用户更快获知抢货结果,减少了用户占用业务时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现积分抢货功能的方法,其特征在于使用缓存技术与队列技术实现用户使用在电子商务平台积攒的积分参与平台设置的兑换活动,包括活动设置、服务调用方设置、网关层设置和服务层设置;所述活动设置,设置活动物料表,用于存放兑换活动中所使用的商品与库存信息,并随着活动结束而失效;活动规则信息存入活动规则表,根据规则表中的信息判断用户是否有参与资格;服务调用方设置用于防止重复提交和前置判断;网关层设置用于拦截、放行,以及对抢货接口的限流,处理异常问题时的熔断;服务层设置包括根据条件判断是否满足抢货条件、扣减库存、扣减积分、更新兑换累加数量、订单生成和异常处理。2.根据权利要求1所述的一种实现积分抢货功能的方法,其特征在于所述活动设置,在上架活动时,将活动所需商品详情及数量单独存入活动物料表,并将库存信息缓存入redis,设置为长期有效;修库存时需要更新Redis中的库存数;活动下架后删除Redis库存。3.根据权利要求2所述的一种实现积分抢货功能的方法,其特征在于物料设置时在库存表扣减对应数量的库存,当活动结束时将没有卖完的库存量回退到库存表中,从而使活动物料表与商品表、库存表产生联系。4.根据权利要求1或2或3所述的一种实现积分抢货功能的方法,其特征在于活动规则信息包括参与活动的限制性信息,可通过添加用户商品兑换量累计表,大数据通过汇总业务表数据,得到用户活动商品周、月、总兑换量汇总数据,此类规则通过大数据汇总后回写MySQL。5.根据权利要求1所述的一种实现积分抢货功能的方法,其特征在于所述服务调用方设置包括:页面静态化:把兑换商品详情页做成静态页面,把商品参数信息包括商品详情及价格全部放在静态页面里,然后上传到CDN上预热,这样大量的商品详情页访问请求不用访问源站;防止重复提交:前端页面相关按钮点击后置灰,防止重复提交;根据接口返回的结果和活动规则判断是否让用户可以继续点击抢货;前置判断:如果活动已经结束或库存为0则不再调用接口/限量。6.根据权利要求1所述的一种实现积分抢货功能的方法,其特征在于所述网关层设置包括:拦截:对黑名单IP/用户拦截;为防止前端恶意请求、攻击脚本,在网关层对接口按UserId限制访问次数;放行:根据抢货商品的库存数放行请求,超过库存个数的请求直接返回抢货失败;限流:根据现有的服务集群估算能够处理的最大请求数,对抢货接口限流;熔断:服务接口出现紧急问题无法正确提供服务时熔断,包括数据库长时间锁表、数据异常错误及流...

【专利技术属性】
技术研发人员:林大伟肖建国姜坤
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

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

1