采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
是的,令牌数和票数关联不需要那么紧密,不需要管,实际中,有可能令牌没了,票还没卖完,所以我们需要再加个定时任务,定时的刷新令牌数和票数保持同步。
可以这样来理解,令牌桶是为了解决水流速度的,我可以控制出票的速度,太快了会导致我服务承受不了;令牌大闸是为了解决库存上限的问题,如果没有令牌大闸,那么我票卖完了,水流还一直在,一直会校验我的库存,对服务也是一种压力。一般两者要配合起来使用,又要控制卖的速度,又要控制卖的上限
所以我们需要再加个定时任务,定时的刷新令牌数和票数保持同步 为了不对数据库产生太大压力,这个定时刷新的时间一般怎么设比较好?
我们并没有设计定时器,而是每次有请求时,判断是令牌余数是5的位数时就更新。 用定时器也可以,时间看具体看业务,比如12306官方的余票信息估计是5分钟更新一次,我有一次买票,显示余票1,但购买时却说卖光了,我就一直刷票,直到5分钟后,余票才变为0.
登录后可查看更多问答,登录/注册
最新版Spring3.0仿12306售票系统实战
1.1k 28
564 12
598 8
639 8
1.1k 7