logo头像
Snippet 博客主题

限流问题

基本的概念:

限流是为了解决流量超出服务器的承载量,为了保证服务器的稳定性而做的折中方案。

通用的实现方式

计数器

代码实现

具体实现

缺点

临界问题,11:59:59 秒100个请求,12:00:01秒 又100个请求,导致请求超出服务器的承载能力。

滑动窗口限流

基本原理

比如限流是按照1分钟100次,我细分为60个时间间隔,第一秒消耗了多少个,我新增一秒

代码实现

具体实现

优点

避免了固定窗口的突发请求

缺点

设置精度越高,算法消耗的空间越大精度低和固定窗口效果类似。

漏斗算法

令牌桶算法

代码实现

1
 

常用的资源隔离

线程池

信号量