需求: 一个类似于商品秒杀的系统,商品的列表页面和详情页面进行了缓存,可能在短时间内有大量的请求进入,正常情况下每一次购买操作都会触发一次异步的缓存刷新操作,但是秒杀的时候,会在短时间内产生大量的缓存更新请求,而这些请求其实是没有必要全部处理的,此时可以采用限流的方式控制缓存刷新的频率
下面是一个简单的限流器,可以限定每per
秒内能够处理的最大请求数rate
,对于过多的请求则直接丢弃
1 |
|
简单的测试代码如下:
1 |
|
参考: https://stackoverflow.com/questions/667508/whats-a-good-rate-limiting-algorithm