简单秒杀系统中的限制单个用户访问次数

本文探讨了在简单秒杀系统中为何要限制单个用户访问次数,并详细阐述了实施流程。通过令牌桶算法限流后,检查用户在Redis中的访问次数,若超出限制则提示购买失败。每次用户点击秒杀按钮即计为一次访问,无论成功与否,都会增加访问次数并更新Redis中的过期时间。最后,介绍了控制器和服务层的实现细节。
摘要由CSDN通过智能技术生成

为什么要限制用户访问次数?

                      

 限制流程

                   用户在进行了令牌桶算法限流之后,首先判断该用户是否超过了访问次数,从redis里获取设置了期限的key的访问次数,如果超过了则直接返回用户信息购买失败,超过频率限制,否则在redis里再增加一次访问次数,重新设置redis中的key对应的过期时间,然后调用秒杀业务,再在秒杀业务里判断是否商品超过了秒杀时间,再判断用户是否能进行秒杀,如果能进行,为用户生成订单id【注意,不是用户秒杀成功一次算是访问了一次,而是用户点击一下app的秒杀按钮就算是访问了一次,所以不能在用户秒杀成功后再加用户的访问次数,而是应该只要访问,不管成不成功都要加1次

                              

实现过程 

         controller.java

                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值