nginx里有limit_conn和limit_req模块.laravel框架里有限流中间件throttle.还可以自己写算法实现.其它各种限流方式这些有什么区别吗?怎样选用呢?
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
限流方式很多,不同公司有不同的做法。1.在网关做,利用布隆过滤器实现2.在nginx层做,利用nginxlimit_conn和limit_req模块,或者nginx+实现3.代码层做,比如php本身实现限流如果在代码层做,其实流量已经进来了,服务器压力还是有的,但是它可以自定义对某些接口自由配置限流,现在一般在Nginx层或者网关做的会比较多
HUWWW
TA贡献1874条经验 获得超12个赞
越前沿的方案,越有效,可以最大限度的减少服务器开支,但是缺点就是距离业务太远,以至于无法由业务来进行调配。比如,通过Nginx进行限制,那么就会在Nginx层对流量进行限制,不会把请求交给fpm,节约了fpm资源。而通过php代码去限制,这时候请求已经是交给fpm处理了,也更加贴近任务,可由业务去自由调配限度等,但是这里还是浪费了资源。当然,大部分情况下这种限流的主要目的都是为数据库减轻压力。
添加回答
举报
0/150
提交
取消