本文主要是介绍如何在lumen里进行接口限频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
日常接口在使用过程中,如果不进行限频,很容易被突发异常的集中流量冲垮整个服务,故对web提供的接口都应该进行频率限制。
laravel
本身提供了限频的中间件ThrottleRequests
,但是lumen
框架里没有这个中间件,故这里说明下如何进行引入。
引入流程
- 新建文件
app/Http/Middleware/ThrottleRequests.php
,文件内容为
<?phpnamespace App\Http\Middleware;use App\Classes\Header;
use Closure;
use Carbon\Carbon;
use Illuminate\Cache\RateLimiter;
use Symfony\Component\HttpFoundation\Response;class ThrottleRequests
{/*** The rate limiter instance.** @var \Illuminate\Cache\RateLimiter*/protected $limiter;/*** Create a new request throttler.** @param \Illuminate\Cache\RateLimiter $limiter*/public function __construct(RateLimiter $limiter){$this->limiter = $limiter;}/*** Handle an incoming request.** @param \Illuminate\Http\Request $request* @param \Closure $next* @param int $maxAttempts* @param float|int $decayMinutes* @return mixed*/public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1){$key = $this->
这篇关于如何在lumen里进行接口限频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!