SW-X的限流器,依赖Atomic原子级计数器组件实现,共支持以下2种模式:
如果要启用限流器,则需要在/config/limit.php
配置文件中,将对应模式的limit_switch
参数改为true
,表示开启该项限流器。
同时/config/limit.php
文件,也是限流器默认的全局设置参数。
限流器,统一依赖\x\Limit
组件,在/box/limit.php
文件中使用进行限流注册。
路由限流器,只支持http
、websocket
、rpc
三种服务,不支持mqtt
服务。
同时,路由限流支持全局开启,不需要单个路由注册,只需要在/config/limit.php
文件中,将global_switch
参数改为true
即可。
当然,开启全局路由限流后,也可以对单个路由进行限流注册,路由限流器声明优先级如下:
(以下顺序,越往上优先级越高,会往下覆盖合并)
@Limit
注解限流\x\Limit
限流器注册\x\Route
路由表中的限流声明路由限流器,没有对某个服务的支持,注册后将对整个服务生效。
同时,IP限流不支持全局开启,只能通过\x\Limit
组件注册。