- 常用手段 限流,降级,拒绝服务
限流支持URL级别,也支持方法,QPS和线程数限流.
比如最大市1万qps,超过8千的时候就可以直接丢弃。
。 限流会导致一部分用户请求失败,设置超时时间即可。 防止被限流的请求不能fast fail 拖垮系统.
限流 方案:
接入层nginx限流,网关限流,应用层限流
- redis+lua脚本限流
- sentinel 在网关处流量防护,限制API调用频率
截屏2025-01-06 23.32.33.png
API维度限流
Nacos控制台可以添加流控规则,并且持久化。 当配置文件更新时,可以推送给sentinel
详情接口热点参数限流
- 降级实战
当流量达到5w/s时,成交记录从20条改为5条
截屏2025-01-06 23.35.26.png
-
fallback设置默认参数
截屏2025-01-06 23.35.47.png
基于响应时间的降级规则处理
慢调用比例,最大RT,比例阀值,熔断时长,最小请求数.
基于异常数的降级规则 (异常数,熔断时长,最小请求数).
拒绝服务 返回503. 当cpu利用率达到90%,直接拒绝服务,是种不得已而为之的手段。可以采用阿里的插件sysguard.
load自适应: cpu core*2.5
平均RT: 平均流量RT超过系统保护值
并发线程数
单台机器入口流量的QPS