请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

令牌锁

直接在请求抢分布式锁之前先进行判定,如果 前缀+用户id 没在缓存中,才可以抢分布式锁,并把用户存在缓存中设置有效期,这样一个用户只能在有效期内抢一次分布式锁,不需要令牌就可以防机器人刷票

正在回答 回答被采纳积分+3

1回答

甲蛙 2024-01-03 16:12:49

我们的令牌还跟库存有相关,没令牌的就不能往后了。你这个设计的话,就算没票了,也一直可以有令牌,可以往后到抢票的逻辑里

0 回复 有任何疑惑可以回复我~
  • 那能不能直接用库存当令牌呢,先把所有库存量算出来,存到数据库,把库存用您说的令牌方式存到缓存中,然后一个人抢到锁后,可能买多个座位,成功购买后直接去修改缓存,买了多少座位就去减多少。然后设计一个策略,定期的去更新数据库,这样还可以保证票数的正确性,不会少卖
    回复 有任何疑惑可以回复我~ 2024-03-03 12:31:31
  • 令牌没法做到精确,比如有些人下单了,排队中,但是后面取消排队了,这种情况就是消耗令牌,但没有出票,除非你再考虑各种不出票的情况,把令牌数再加回来。控制得越精确,消耗的计算就越多,性能就越差。
    回复 有任何疑惑可以回复我~ 2024-03-07 17:30:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信