2021-07-15-基于redis的限流控制
目录
[TOC]
背景
基于限流的控制在很多程序中都有需要.
- 请求流量控制,防止过量订单同时到达拖垮服务器
- 下游系统为了平稳运行,对上游系统流量控制
定时key (string)
- 每次请求调用key +1
- 达到阀值,返回请求失败
- 触发阀值 请求失败 修改服务状态 此时请求不再恢复
令牌桶
- 定时持续的线程输入令牌至于 到达水位线后不再添加
- 请求作为消费者消费令牌
- 如果令牌数=1,触发风控, 停止交易. (风控生效记录状态需要手动矫正)
基于时间戳切片 set 通过scoore统计
- 在set中创建对应秒切片
- 每次请求对响应秒切片+1
- redis score统计华东窗口时间内的流量总数
- 触发阀值 请求失败 此时请求不再恢复