解决方案
- 给线程设置超时时间
- 限流0
- 熔断(一定时间后尝试),调用请求成功熔断开发关闭,如果请求失败熔断开关接着打开
限流算法

计数器算法

如图所示,限制了每一分钟能够处理的总请求数100,如果当前时间已经超过100次请求的阈值,后续的所有请求都会被拒绝。
**临界问题:**0:58到1:02 这4秒内接收到200请求,超出设置的阈值
滑动窗口算法

令牌桶限流算法

- 令牌桶:一个容量为 C 的桶,用于存储令牌。
- 令牌生成速率:令牌以固定速率 r 生成,并放入桶中。
- 请求处理:每个请求需要消耗一个令牌才能被处理。