标签: throttling

谁负责限制网络请求?

我正在开发一个从第三方网站检索信息的类库.如果在设定的时间段(~0.5秒)内发出太多请求,则正在访问的网站将停止响应.

我的库的公共方法直接与Web服务器上的文件资源相关.换句话说,每次调用方法时,HttpWebRequest都会创建一个并将其发送到服务器.如果一切顺利,则会将XML文件返回给调用者.但是,如果这是小于0.5秒的第二个Web请求,则请求超时.

我的困境在于我应该如何处理请求限制(如果有的话).显然,我不希望呼叫者坐在那里等待响应 - 特别是如果我完全确定他们的请求会超时.

我的库是否更有意义对我创建的Web请求进行排队和限制,或者如果客户端在API调用之间没有等待足够长的时间,我的库是否应该抛出异常?

c# throttling httpwebrequest

7
推荐指数
1
解决办法
2238
查看次数

实现Web API请求限制/速率限制的常用方法有哪些?

实现Web API请求限制的常用方法有哪些?是否有任何用于常见Web框架(Rails,Django,Java等)的库可以为您提供临时禁止?

一个相关的问题表明,速率限制是通过限制IP请求在Web服务器上完成的,但这意味着所有请求都被平等对待.似乎需要由应用程序处理限制,因为:

  1. 某些API调用可能具有不同的速率限制(例如,自动完成API将具有比其他调用更高的限制)
  2. Web服务器无法处理API密钥临时禁止
  3. 来自代理服务器的请求被视为相同(?)

相关问题:这里,这里这里

api django throttling ruby-on-rails

7
推荐指数
1
解决办法
2311
查看次数

如何在MySql中限制或优先化查询

无论如何,在MySQL中根本没有优先考虑或限制查询?

我是服务器上的DBA,看到很多未经优化的查询进入服务器,它们只会破坏CPU.我正在考虑限制以不良方式攻击数据库的某些用户.

澄清:

我意识到MySQL内置了一些设施来限制查询,连接等数量.但这些并不是真正的问题,只是在一个蓝色的月亮中,用户将发送一个未经优化的查询,我需要计时出类似的东西.

mysql throttling query-optimization

7
推荐指数
1
解决办法
3104
查看次数

如何在Java Web应用程序中限制webservice调用

我的要求很容易理解.

我想从我的Java Web应用程序调用Web服务,每分钟限制最多10次Web服务调用.在1分钟后,我可以建立另外10个连接,无论之前的10个webservice调用的状态(已完成或未完成).

有人可以指导我实现这个的方法吗?任何教程或有用的链接?

java throttling tomcat6 object-pooling

7
推荐指数
1
解决办法
9016
查看次数

限制 Python 每秒的 HTTP 请求数

我编写了一个从文件中获取 URL 并同时向所有 URL 发送 HTTP 请求的脚本。我现在想限制每秒请求HTTP的数量和每个接口(带宽eth0eth1在会话等)。有没有办法在 Python 上实现这一点?

python throttling bandwidth-throttling python-multithreading

7
推荐指数
1
解决办法
5814
查看次数

我如何使用RxJ来阻止任何AJAX调用请求,直到前一个调用结束

我有一个observable,它代表一个由一些外部组件触发的动作.出于这个问题的目的,我们称之为createBananaAction.我有一个bananaService方法create执行一个AJAX请求并返回创建的香蕉作为Promise.

因此,每当有一些数据从createBananaAction我们到达时,我们都想打电话bananaService.create().

代码如下所示:(使用RxJs)

this.createdBananas = createBananaAction.flatMap(() => bananaService.create());
Run Code Online (Sandbox Code Playgroud)

现在,挑战是"限制"createBananaAction,以便它只能在收到前一个香蕉后请求另一个香蕉.简单地说:永远不会有两个同时来电bananaService.create().请注意,我不想及时限制,而是在bananaService执行其操作时忽略所有传入的新香蕉请求.

我做了一些研究,找到了看似合适的pausable操作员.

我的代码现在看起来像这样:

const pausableCreateBananaAction = createBananaAction.pausable();

this.createdBananas = pausableCreateBananaAction
    .do(() => pausableCreateBananaAction.pause())
    .flatMap(() => bananaService.create())
    .do(() => pausableCreateBananaAction.resume());
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我不喜欢我需要这些do语句来手动触发pauseresume语句的事实.

我发现,你可以通过一个可观察到pausable那么应该产生falsetrue在适当的时间,但是这也需要我在受到手动推值.像这样的东西:

const letItGoThrough = new Rx.Subject();

this.createdBananas = createBananaAction
    .pausable(letItGoThrough.startWith(true))
    .do(() => letItGoThrough.onNext(false))
    .flatMap(() => bananaService.create())
    .do(() => letItGoThrough.onNext(true));
Run Code Online (Sandbox Code Playgroud)

所以现在我有了一个Rx.Subject(主题就像是RxJs的训练轮,你使用的是直到你在RxJs上经验不足而你不再需要它们.)和两次调用do. …

javascript throttling reactive-programming rxjs

7
推荐指数
1
解决办法
1201
查看次数

Lambda Throttling场景

我们正在使用订阅SNS的Lambda来处理消息.Lambda在任何时候都有100个并发调用的安全限制.那么节流事件会发生什么?它们被拒绝还是被添加到队列中以便以后处理它们?

[访问过的页数]

  • Link1表示异步调用的Lambda函数可以在大约15-30分钟内吸收合理的流量突发,之后传入的事件将被拒绝作为限制.
  • Link2表示如果您的Lambda函数被异步调用并受到限制,AWS Lambda会自动重试受限制的事件长达六个小时,并且重试之间会有延迟.异步事件在用于调用Lambda函数之前会排队.

asynchronous throttling amazon-web-services amazon-sns aws-lambda

7
推荐指数
1
解决办法
809
查看次数

Laravel:在自定义登录中集成Throttle

如果我没有使用laravel给出的默认LoginController,如何集成laravel throttle?

这是我的控制器:

  use AuthenticatesUsers;

  //function for login
  public function login(Request $requests){
    $username = $requests->username;
    $password = $requests->password;

    /**to login using email or username**/
    if(filter_var($username, FILTER_VALIDATE_EMAIL)) {

      Auth::attempt(['email' => $username, 'password' => $password]);
    } else {

      Auth::attempt(['username' => $username, 'password' => $password]);
    }


    if(Auth::check()){
      if(Auth::user()->type_user == 0){

        return view('users.dashboard');

      }
      else{
        return view('admin.dashboard');
      }
    }
    else{

      return Redirect::back()->withInput()->withErrors(['message'=>$login_error],'login');

    }
  }
Run Code Online (Sandbox Code Playgroud)

我想限制失败的登录,但我似乎无法使用我自己的控制器.你能帮帮我吗?

php validation throttling laravel laravel-5.4

7
推荐指数
3
解决办法
5156
查看次数

反应 - 节流/去抖动微调器(加载消息) - 不显示请求是否快于 X 毫秒

我正在我的 React 应用程序中准备微调器。

它工作得很好。但是,一些 UX 提示说,应该在等待一段时间后显示 spinner/loader/etc。对于这个例子,假设它应该是 750 毫秒。

如何节流/去抖动(我仍然不确定有什么区别)重新渲染组件?

编辑 xlxk611rzw

在上面的例子中,加载状态不应该在任何时候出现。

javascript throttling debouncing reactjs

7
推荐指数
2
解决办法
2902
查看次数

如何在特定路线上禁用油门?(拉拉维尔)

我们可以在特定的一组路由中禁用 laravel 的节流阀吗?

这是我的代码:

Route::group(['middleware' => ['auth:sanctum']], function () {
    Route::get('/sample1', 'SampleController@sample');
    // more routes here
});
Run Code Online (Sandbox Code Playgroud)

我想在所有路由中禁用油门限制器Route::group。我们可以这样做吗?

php throttling laravel

7
推荐指数
1
解决办法
2243
查看次数