为了账号安全,请及时绑定邮箱和手机立即绑定

请教各位一个问题,求解答:在php高并发中, 应该在什么地方做限流处理?

请教各位一个问题,求解答:在php高并发中, 应该在什么地方做限流处理?

波斯汪 2019-10-10 18:53:27
nginx里有limit_conn和limit_req模块.laravel框架里有限流中间件throttle.还可以自己写算法实现.其它各种限流方式这些有什么区别吗?怎样选用呢?
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

限流方式很多,不同公司有不同的做法。1.在网关做,利用布隆过滤器实现2.在nginx层做,利用nginxlimit_conn和limit_req模块,或者nginx+实现3.代码层做,比如php本身实现限流
如果在代码层做,其实流量已经进来了,服务器压力还是有的,但是它可以自定义对某些接口自由配置限流,现在一般在Nginx层或者网关做的会比较多
                            
查看完整回答
反对 回复 2019-10-10
?
HUWWW

TA贡献1874条经验 获得超12个赞

越前沿的方案,越有效,可以最大限度的减少服务器开支,但是缺点就是距离业务太远,以至于无法由业务来进行调配。
比如,通过Nginx进行限制,那么就会在Nginx层对流量进行限制,不会把请求交给fpm,节约了fpm资源。
而通过php代码去限制,这时候请求已经是交给fpm处理了,也更加贴近任务,可由业务去自由调配限度等,但是这里还是浪费了资源。
当然,大部分情况下这种限流的主要目的都是为数据库减轻压力。
                            
查看完整回答
反对 回复 2019-10-10
  • 2 回答
  • 0 关注
  • 399 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信