前端分流限流策略算法
目录
前端分流限流策略、算法
前言
高并发场景随处可见,那怎么增加自己对高并发优化的视野呢?希望本文总结能增加一点点你对某些解决方案的兴趣
此处“前端”,是相对于“后端”的请求,即后端架构中“请求的入口”为前端。
正文
限流分析
- 前端组件软负载均衡基础设施(lvs / nginx / haproxy)
- OpenResty 防刷、限流
限流策略
- 限制接口总并发数:按照 ip 限制其并发连接数
- 平滑限制接口的请求数:限制 ip 每分钟只能调用 120 接口 (平滑处理请求,即每秒放过2个请求)
- 限制接口时间窗请求数:限制 ip 每分钟只能调用 120 次接口(允许在时间段开始的时候一次性放过120个请求)
限流算法
- 漏桶算法限流
- 限制 ip 每分钟只能调用 120 次接口 (桶容量为120, 平滑处理请求,即每秒放过2个请求),超过部分进入桶中等待,如果桶也满了,则进行限流
- 令牌桶算法限流
- 限制 ip 每分钟只能调用 120 次接口, 但是允许一定的突发流量(突发的流量,桶的容量超过桶容量(120),直接拒绝。