常规限流手段
类型
控制并发数(max_conn)、控制访问速率(bps/qps)
算法
固定窗口计数器、滑动窗口计数器、漏桶、令牌桶;
操作
通过、拒绝服务、服务降级、延迟处理
粒度
单机限流、集群限流、分布式限流;
服务端自适应限流
- 如何判断服务是否过载
- 比如通过cpu load判断cpu是否过载
- 如何限流
- 比如通过滑动窗口计数+阈值,控制并发请求数
- 如何动态调整阈值
- 比如基于历史并发请求数+cpu参数,来预估并发度阈值,并保证最终Load趋于接近或小于CPU个数。
动态调整阈值
自适应限流的关键是动态调整阈值;
- ST(t+1)=min{ST(t)[1+a(CPU/Load(t) -1)], bC(t)}
ST(t+1): t+1 时刻的并发阈值;
0<= a < 1
b>=1
ST(t): t 时刻的并发阈值;
Load(t):
C(t): t时刻的并发请求数;
如上,Load以及C 负反馈于ST, ST会影响C,C 进而影响Load.
Load > CPU, ST 趋向于减小,更容易丢弃请求;
Load = CPU, 达到稳定状态,(理想状态)
Load < CPU, ST 不断增大,通过 bC(t)进行限制最大值
版权声明:本文为legend050709原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。