当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud-Redis速率限制-不适用于每分钟请求

贺桐
2023-03-14

我的特定用例是,我想使用redis速率限制器在spring cloud gateway实现速率限制,例如,对于特定路由,每分钟4个请求。

但它并没有像预期的那样工作,一旦一个请求完成,它就会自动填充存储桶。使用了spring cloud论坛提供的相同实现,但无法限制我对特定时间窗口的请求:

通过将RequiredRate设置为所需的请求数、requestedTokens设置为以秒为单位的时间跨度、burstCapacity设置为RequiredRate和requestedTokens的乘积来实现以下1个请求/秒的速率限制,例如,设置RequiredRate=1、requestedTokens=60和burstCapacity=60将导致1个请求/分钟的限制。

TIA

共有1个答案

吴鸿彩
2023-03-14

将Spring Cloud版本更新到2020.0.2后,它开始工作

 类似资料:
  • 我需要限制每分钟的请求数。我还没有找到任何方法来使用Spring云网关redis。下面是当前的实现:图像实现 customRouter.getBurstCapacitycustomRouter.getReplenishRate 两者都仅在几秒钟内运行。示例:20 个请求在同一秒内与。 我在1分钟内需要20个请求。

  • 我正在写一个网络爬虫,运行并行抓取许多不同的域。我想限制每秒向每个域发出的请求数量,但我不关心打开的连接总数,也不关心跨所有域发出的每秒请求总数。我想最大限度地增加打开连接和每秒请求的总数,同时限制对单个域的每秒请求数。 我可以找到的所有现有示例(1)限制打开连接的数量,或(2)限制在fetch循环中每秒发出的请求总数。例子包括: aiohttp:速率限制并行请求 它们都不做我要求的事情,即限制每

  • 我正在使用ProjectReactor使用rest从web服务加载数据。这是与多个线程并行完成的。我开始达到web服务的速率限制,因此我希望每秒最多发送10个请求,以避免出现这些错误。用Reactor我该怎么做? 使用zipWith(Mono.delayMillis(100))?还是有更好的办法? 非常感谢。

  • 问题内容: 我正在用GRequests和lxml在Python 2.7.3中编写一个小脚本,这将允许我从各个网站收集一些可收集的卡价格并进行比较。问题是网站之一限制了请求的数量,如果我超过了它,则会发回HTTP错误429。 有没有一种方法可以限制GRequestes中的请求数量,以使我不超过我指定的每秒请求数量?另外-如果发生HTTP 429,如何让GRequestes在一段时间后重试? 附带说明

  • 我正在用Python 2.7.3编写一个小脚本,其中包含GRequests和lxml,它将允许我从各种网站收集一些可收集的卡价格并进行比较。问题是其中一个网站限制了请求的数量,如果我超过它,就会发回HTTP错误429。 有没有办法在grequests中增加限制请求数,这样我就不会超过我指定的每秒请求数?还有——如果HTTP 429出现,我如何让GRequestes在一段时间后重试? 另一方面,他们

  • 我使用和来实施速率限制,例如每分钟5个请求: 然而,可以在最后一分钟发送5个请求,在第二分钟的第一秒发送5个请求,即在两秒钟内发送10个请求。 如何避免这个问题? 更新:我提出了这个清单。这是一个好方法吗?