限流问题
本文于
1596
天之前发表,文中内容可能已经过时。
基本的概念:
限流是为了解决流量超出服务器的承载量,为了保证服务器的稳定性而做的折中方案。
通用的实现方式
计数器
代码实现
具体实现
缺点
临界问题,11:59:59 秒100个请求,12:00:01秒 又100个请求,导致请求超出服务器的承载能力。
滑动窗口限流
基本原理
比如限流是按照1分钟100次,我细分为60个时间间隔,第一秒消耗了多少个,我新增一秒
代码实现
具体实现
优点
避免了固定窗口的突发请求
缺点
设置精度越高,算法消耗的空间越大精度低和固定窗口效果类似。
漏斗算法
令牌桶算法
代码实现
常用的资源隔离
线程池
信号量