基于redis+lua的分布式令牌桶限流
2021-08-16 15:05:34 17 举报
基于redis+lua的分布式令牌桶限流
作者其他创作
大纲/内容
获取最后的更新时间戳 last_refreshed若为空,则赋值为 0
标记为可获得
获取token和时间戳信息
将剩余令牌数和时间存入到redis中并设置有效期为 ttl
判断剩余的令牌是否满足需要消费的令牌allowed = filled_tokens >= requested
获取令牌桶的数量 last_tokens 若为空,则赋值为 capacity
计算失效时间 ttl = fill_time*2
标记为不可获得
速率 rate
令牌桶数量 capacity
true
false
返回数据
执行lua
初始化信息
请求令牌数量 requested
当前时间戳 now
计算达到最大数量的时长fill_time = capacity/rate
0 条评论
下一页