标签: throttling

如何延迟/限制ASP.NET中的登录尝试?

我正在尝试对我的ASP.NET Web项目执行一些非常简单的请求限制.目前我对针对DOS攻击的全局限制请求不感兴趣,但是想要人为地延迟对所有登录尝试的响应,只是为了使字典攻击更难做(或多或少像Jeff Atwood 这里概述的那样).

你会如何实现它?这样做的方式是 - 我想 - 简单地打电话

Thread.Sleep();
Run Code Online (Sandbox Code Playgroud)

在请求期间的某个地方.建议?:)

asp.net security iis throttling

9
推荐指数
1
解决办法
3498
查看次数

如何在.Net中限制异步功能?

我在.Net中使用async-await.如何限制并发异步调用的数量?

.net throttling async-await

9
推荐指数
1
解决办法
1209
查看次数

如何从actor内部获取actor系统引用

我有一个向自己发送消息的akka​​ actor:

  def receive = {
    while (...) {
       self ! "some message"
    }
  }
Run Code Online (Sandbox Code Playgroud)

我想使用Throttler来控制此actor发送给自己的消息流.

  val throttler = system.actorOf(Props(new TimerBasedThrottler(15 msgsPer (1.minute))))
  throttler ! SetTarget(Some(self))
Run Code Online (Sandbox Code Playgroud)

然后更改while循环以向throttler发送消息:

    while (...) {
       throttler ! "some message"
    }
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何从actor内部访问"系统",以创建节流器.这该怎么做?有没有更好的方法?

scala throttling actor akka

9
推荐指数
3
解决办法
7095
查看次数

RabbitMQ:针对消费者缓慢的大型队列限制快速生产者

我们目前正在使用RabbitMQ,其中一个持续超快的生产者与受限于有限资源的消费者(例如,慢速MySQL插入)配对.

我们不喜欢声明队列x-max-length,因为一旦达到限制,所有消息都将被删除或死信,我们不想丢失消息.

添加更多的消费者很容易,但他们都将受到一个共享资源的限制,因此无法使用.问题仍然存在:如何减缓生产者的速度?

当然,我们可以在Redis,memcached,MySQL或生产者读取的其他内容中添加一个流控制标志,如同对类似问题的回答指出的那样,或者更好的是,生产者可以定期测试队列长度并限制自己,但是这些看起来像是我的黑客.

我主要质疑我是否有一个根本的误解.我原以为这是一个常见的场景,所以我想知道:

限制生产者的最佳做法是什么?这是如何用RabbitMQ完成的?或者你以完全不同的方式做到这一点?

背景

假设生产者实际上知道如何通过正确的输入减慢自己的速度.例如,硬件传感器或硬件随机数生成器,可以根据需要生成任意数量的事件.

在我们特定的实际案例中,我们有一个用户可以用来添加消息的API.我们不想吞噬和丢弃消息,而是通过让我们的API在队列"满"时返回错误来应用反压,因此调用者/用户知道要退回,或者让API阻塞直到消费者赶上.我们不控制我们的用户,因此无论消费者的速度有多快,我都可以创建一个更快的生产者.

我希望有类似于TCP套接字的API,其中write()可以阻止,并且select()可以使用它来确定句柄是否可写.因此要么拥有RabbitMQ API块,要么在队列已满时返回错误.

throttling rabbitmq

9
推荐指数
1
解决办法
2581
查看次数

节流和去抖功能

我对油门和去抖功能的概念有点不确定.

我明白了:

我们去掉了一个应该在某个事件发生后调用的函数.它用于拖动,键盘等事件,目的是不会一直触发事件被触发,而是在事件系列完成时触发.通常在键入整个单词后,或者拖动或调整大小序列已结束.

我们限制了在发生一系列事件时应该触发的函数,但是当我们想控制它被调用的次数时.就像在拖动运动中一样,我们希望仅在距离的每x个像素中调用该函数,或者仅每隔100ms调用该函数,而不是每次触发该事件时都调用该函数.因此,在发生一系列事件时调用油门功能,只需更少次数.

题:

这是对这些功能及其目的的正确看法吗?还有其他功能可以区分它们吗?

javascript throttling function debouncing

9
推荐指数
1
解决办法
1817
查看次数

Lambda限制低于并发限制

我们使用Lambda为通过新闻媒体网站访问的API(通过API网关)供电,接收波动但高负载的流量.我们开始体验限制,因此我们将并发限制提高到2000.但是,我们仍然每天多次经历限制.

奇怪的是,在CloudWatch指标中,当我们受到限制时,并发请求达到600或更低.请参阅此CloudWatch图表作为示例:

CloudWatch指标中的Lambda限制

有谁之前经历过这个吗?为什么你认为这种情况发生了?我们对于它可以做些什么呢?

更多信息

  • 此图表涵盖了整个地区的所有Lambdas.
  • 发生限制时,它会在所有Lambda实例中发生.
  • 我们主要通过API网关触发Lambdas,但有一些是通过SNS触发的(相当高的数据速率).
  • 我们在所有API前面都有CloudFront,其中一些我们有5秒的缓存时间(对于超级频繁请求的API - 节省我们$$$)

此外,这里的图像还显示了同一时间段内的总调用次数和平均持续时间.很难知道是什么因果关系(由于节流导致持续时间上升,反之亦然,因为一些lambdas会调用其他lambda).请查看相应的轴,因为刻度差异很大.

在此输入图像描述

throttling amazon-web-services aws-lambda aws-api-gateway

9
推荐指数
2
解决办法
1593
查看次数

在 AWS API Gateway 中,我可以在不附加 API 密钥的情况下使用使用计划吗?

关于 API 网关使用计划的 AWS 文档都暗示它们是使用/附加到 API 密钥创建的,但没有说明如果没有 API 密钥它将如何运行。我有一个未经授权的 API,我想对其应用限制。我可以创建使用计划,将其附加到资源,而不将 API 密钥与其关联吗?它会起作用吗?

上下文:我正在尝试使用 CloudFormation 的 Java SDK 来定义堆栈,但我无法弄清楚如何以编程方式指定特定于资源的节流阀。我还将接受一个答案,该答案告诉我如何在不使用控制台的情况下执行此操作。

throttling amazon-web-services aws-cloudformation aws-api-gateway aws-cdk

9
推荐指数
1
解决办法
1322
查看次数

DynamoDB ThrottlingException 问题

我有一个名为 的 dynamodb 表events。在此表中,我存储events用户执行的所有操作(page_view、product_view、add_cart、purchase)。

所以架构是

partition_key : <user_id>
attributes : {"vector" : <[list of events]>}
Run Code Online (Sandbox Code Playgroud)

最近我遇到了这样的问题

An error occurred (ThrottlingException) when calling the UpdateItem operation: Throughput exceeds the current capacity of your table or index. 

DynamoDB is automatically scaling your table or index so please try again shortly. 

If exceptions persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html

Run Code Online (Sandbox Code Playgroud)

我认为这与 aws-limits 问题有关,我达到了 awssupport team来增加限制。

增加限制后,我们再次遇到同样的问题。

谁能为此建议一个解决方案?

throttling amazon-web-services amazon-dynamodb

9
推荐指数
1
解决办法
1万
查看次数

如何进行首次发生,然后将事件抑制2秒(RxJS)

我认为RxJS应该完全适合压制多次按键点击2秒.但是,我正在努力实施.

var $button = $('#myButton').button();
$button
    .toObservable("click")
    //.Throttle(2000) // Wouldn't fire the first event instantly :-(
    .Subscribe(function(){ alert('clicked'); }); 
Run Code Online (Sandbox Code Playgroud)

为方便起见,我已经创建了一个jsFiddle.你需要向下滚动这个小提琴,因为我只是粘贴Rx,因为我找不到CDN.

http://jsfiddle.net/cburgdorf/mUMFA/2/

throttling system.reactive rxjs

8
推荐指数
1
解决办法
2220
查看次数

API限制RateLimit-Remaining永远不会每分钟更新

我有一个用Laravel 5.2创建的API.我正在使用油门限速.在我的路线文件中,我设置了以下内容..

Route::group(['middleware' => ['throttle:60,1'], 'prefix' => 'api/v1'], function() {
    //
}
Run Code Online (Sandbox Code Playgroud)

据我了解Laravel限制,上面的脚本会将请求限制设置为每分钟60.我有一个应用程序查询路由,每10秒重复一次.因此,每分钟有6个请求,更令人满意的是上述节流.

问题是,我的查询工作,直到我执行60请求,无论时间和60请求后,它429 Too Many Requests用标头响应我Retry-After: 60.根据我的理解,X-RateLimit-Remaining应该每1分钟更新一次.但它似乎永远不会更新,直到它变为0.变为零后,等待60秒然后更新.

我在这做错了吗?

api throttling laravel-5.2

8
推荐指数
0
解决办法
829
查看次数