一、openresty实现限流说明:
静态拦截和动态拦截介绍:
静态拦截就是限流某一个接口在一定时间单位的请求数。一般就是单位1s内的客户端的请求数。
例如用户可以在系统上给他们的接口配置一个每秒最大调用量,如果超过这个限制,则拒绝服务此接口。
而动态拦截其实也是基于静态拦截进行改进,我们可以依据当前系统的响应时间来动态调整限流的阈值,如果响应较快则可以把阈值调的大一些,
放过更多请求,反之则自动降低限流阈值,只使少量请求通过。
其实这就是一个很简单的限流方式。但是因为这些场景在我们开发的时候经常遇到,然而OpenResty 大概实现一些常见的限流方式。
(此处使用OpenResty1.13.6.1版本自带lua-resty-limit-traffic模块 ,实现起来更为方便)。只要是openresty版本号大于1.13.6.1的,都是默认自带lua-resty-limit-traffic模块的
如果,OpenResty版本低于1.13.6.1 ,则需要下载限流模块,下面是下载地址:
git clone https://github.com/openresty/lua-resty-limit-traffic.git
二、平滑限制请求数
2.1具体配置过程如下:
平滑限制请求数(使用漏桶的方法)
场景:
限制 ip 每分钟只能调用 120 次 /1.html 接口文