问题标签 [throttling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4572 浏览

wcf - BizTalk:如何限制与 wcf 服务的连接数?

我开发了一个 BizTalk 应用程序,它接收一个包含一堆消息的文件作为输入。我使用 BizTalk XML 反汇编程序组件在单独的消息中“分批”文件。这些消息中的每一个都由一个编排从 MessageBox 中提取,该编排转换消息并调用 wcf 服务。

我现在遇到的问题是每批包含 1000 条消息,而这 1000 条消息似乎都同时调用了 wcf 服务。wcf 服务被这些消息“轰炸”,并被配置为仅并行处理 10 条消息(每个调用都必须处理数据并将数据放入数据库)并将一堆“太忙”异常返回给 BizTalk。我将 wcf 适配器配置为在 1 分钟后重试连接。

最终结果是 BizTalk 首先对消息进行分批,然后用所有 1000 条消息轰炸 wcf 服务,得到一堆“太忙”的异常,然后什么都不做的等待,直到 1 分钟过去,然后再次轰炸它,如此上。

如果我可以将 BizTalk 配置为打开到该特定 wcf 服务的最多 10 个连接,则处理将更加高效,但据我所知,这是不可能的。(wcf 服务配置为使用 net.tcp。)

我已经用几种不同的方式尝试了主机的节流设置,但要么没有帮助,要么让应用程序变得难以忍受。此外,BizTalk 中的节流似乎是以一种方式实现的,它首先轰炸服务,然后注意到它正在轰炸,然后等待一段时间什么都不做,然后解除油门并再次开始轰炸。将请求/消息涓涓细流似乎要好得多,以便它们在时间上更均匀地分布。例如,我想将 WCF 适配器配置为每秒最多接收 4 条消息。现在可能的限制是这样的:在 5 秒的滑动窗口中,如果有超过 20 条消息,我希望激活限制。但这不一样,因为它允许“爆发”效果。

有什么想法可以提高吞吐量吗?

0 投票
1 回答
4994 浏览

python - 如何在 Python 中测试 Web API 油门限制

我想使用 Python 测试给定站点的 Web API 节流限制。

此 API 节流限制允许每个 IP 超过 Y 秒的 X 请求 MAX。

我希望能够测试此油门限制的可靠性,特别是在边界情况下(X-1 请求,X+1 请求)

你能建议一个好的方法吗?

0 投票
5 回答
6858 浏览

sharepoint - 如何在启用限制的情况下从大列表中获取?

我们有一个包含 50.000 个项目的 SharePoint 列表,并且希望在不禁用 SP2010 的默认限制的情况下从中获取一些数据。

从关于处理大型列表的MSDN文章中,我们认为关键要素是在 SPQuery 上使用一个小的 RowLimit,并使用 ListItemCollectionPosition 进行批处理。

但是,使用我们这样的代码(某些东西),仍然会触发限制异常:

根据 SharePoint Connections 2010 的 MVP 专家的说法,这是设计使然,因为结果集上的隐式排序仍会触发 5000 项限制阈值。

哪个很好,但是我们如何从这个列表中获取?使用ContentIterator会是更好的选择吗?如果是这样,内容迭代器会发挥什么魔力来实现这一点?

0 投票
2 回答
1001 浏览

google-app-engine - Google App Engine Cloud 基础架构上的 Stack Exchange API 兼容请求限制实现

我一直在为 Stack Exchange 编写 Google Chrome 扩展程序。这是一个简单的扩展,可让您跟踪您的声誉并在 Stack Exchange 网站上收到评论通知。

目前我遇到了一些我自己无法处理的问题。我的扩展使用 Google App Engine 作为后端向 Stack Exchange API 发出外部请求。扩展程序对单个站点上的新评论的每个单个客户端请求都可能导致对 api 端点的大量请求以准备响应,即使对于非 skeetish 用户也是如此。普通用户至少在 Stack Exchange 网络的 3 个站点上拥有帐户,有些拥有 > 10 个!

Stack Exchange API 有请求限制:
单个 IP 地址每天只能发出一定数量的 API 请求(10,000)。
如果我在 5 秒内从单个 IP 地址发出超过 30 个请求,API 将切断我的请求。

很明显,所有请求都应限制为每 5 秒 30 次,目前我已经基于带有 memcached 的分布式锁实现了请求限制逻辑。我使用 memcached 作为一个简单的锁管理器来协调 GAE 实例的活动并限制 UrlFetch 请求。
但我认为将如此强大的基础设施限制为每 5 秒发出不超过 30 个请求是一个很大的失败。这样的 api 请求率不允许我继续开发新的有趣和有用的功能,并且有一天它会完全停止正常工作。
现在我的应用程序有 90 个用户并且还在增长,我需要提出如何最大化请求率的解决方案。

众所周知,App Engine 通过相同的不同 IP 池发出外部 UrlFetch 请求。我的目标是编写请求限制功能,以确保符合 api 使用条款并利用 GAE 分布式功能。

所以我的问题是如何在遵守 api 使用条款和利用 GAE 分布式功能的同时提供最大的实际 API 吞吐量。

建议使用另一个平台/主机/代理在我看来是没用的。

0 投票
2 回答
550 浏览

drupal - CCK 字段从内容类型中消失

有时,在网站高流量期间,CCK 输入字段会在从后端添加内容时消失。我没有启用油门模块。这些字段在其他时间会自动恢复。

例如 - 图像上传字段,内容类型新闻的精选复选框在交通繁忙时消失,但在其他时间自动恢复。

可能是什么原因?

Drupal 在流量繁忙时是否有内部节流机制?

0 投票
2 回答
260 浏览

scala - 如何改善 Scala 演员中的邮箱扫描时间

我在 Scala 中创建了以下演员示例:http: //pastebin.com/pa3WVpKy 没有在行中发生的节流(减少 SendMoney 消息的数量):

此测试中的消息处理非常慢(尤其是当银行参与者很少时)。

那是因为演员的邮箱里塞满了 SendMoney 消息,接收 ReadAccountResponse 消息需要很长时间(它们通常几乎在邮箱的末尾,必须扫描整个邮箱)。在这种情况下如何提高邮箱扫描时间?也许有可能将某些消息定义为高优先级?最好有两个邮箱——一个用于普通邮件,一个用于高优先级邮件。可以先扫描高优先级邮箱。“回复”方法也可以自动将消息发送到高优先级邮箱。或者可能创建两个邮箱 - 用于通常的消息和响应?你有什么意见?

问候 Wojciech Durczyński

0 投票
1 回答
1675 浏览

login - 如何使用 Spring Security 实现登录限制?

我正在尝试找出如何使用 Spring Security 限制登录(http://stackoverflow.com/questions/570160/throttling-login-attempts)。有人有什么想法吗?

0 投票
2 回答
1065 浏览

php - Apache/PHP 测试服务器按请求节流

我最近在我的计算机上设置了一个在虚拟机中运行的测试服务器,这样我就可以使用 XDebug 进行交互式调试等操作。在大多数情况下,它非常甜蜜,但是当我从同一个客户端一次向服务器运行多个请求时遇到了障碍。

问题是来宾-主机网络连接并不真正作为物理连接存在,因此它会以计算机硬件允许的速度运行。这通常不是一个大问题,但我正在尝试实现 APC 文件上传监控,这需要 AJAX 请求与文件上传并行运行以监控其性能。在现实世界中,网络会引入延迟和延迟等,留下足够的未使用带宽供 AjAX 请求与文件上传并行运行。但是,在测试机器中,AJAX 请求在上传完成之前无法从服务器获取任何数据,因为绝对没有可用的带宽。

是否可以在虚拟机中(在 Apache、PHP 或某些 Linux 实用程序中)设置某种带宽管理来限制每个 HTTP 请求的可用带宽?比如让每个请求限制在1mbps,但是客户端和服务器之间可以同时存在多个请求?我希望如果可以做到这一点,它将允许 AJAX 请求在上传过程中获取其数据,而不是在上传实际完成之前停止。

我尝试了一个名为 IPRelay 的实用程序,但我似乎无法让它工作,或者至少不能以限制每个请求的方式工作。

0 投票
1 回答
116 浏览

java - mysql中限制的查询数

嗨,我使用 java 库(jwpl)连接 mysql 数据库。我可以在某个术语上被问到的查询数量是有限的。例如 query="select * from table where keyword= term" 可以被询问大约 20 次,然后它就完全不起作用了。我应该怎么办?我应该更改mysql的缓存参数吗?如何?提前致谢

0 投票
4 回答
2675 浏览

c# - 限制应用程序的 CPU 使用率

一个新的游戏服务器刚刚问世,我们公司愿意提供出租。然而,游戏开发者并没有创建任何休眠模式来在没有玩家连接时关闭物理,因此空服务器正在消耗 30% 左右的 CPU。

我发现这个游戏面板插件限制了应用程序的 CPU 使用率。

我用 C# .NET 为我们公司编写了一些小应用程序,以帮助改进我们的服务,我想知道我将如何创建这样的东西。是否可以?