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

用于为云服务实现API节流的速率限制模式

谷梁向荣
2023-03-14

我想为提供的一组服务实现节流。在峰值负载下,我想限制或拒绝向长时间运行的用户或发送大量数据或其他规则的用户提供服务,这些规则甚至可以在以后的阶段进行配置。我计划使用java和spring框架来编写代码。

我读过关于利率限制模式的文章。堆栈溢出帖子建议的一个可能的实现是Token_bucket。这篇文章感觉很复杂。有人能提出其他替代方法或模式吗。以及描述它们的好文章。

我还发现了另一个来自微软的pdf-云设计模式。但是它没有提供太多关于实现节流模式的信息。但类似的文章将不胜感激。

共有1个答案

梁勇
2023-03-14

我相信我们也可以在这里使用断路器模式,一旦达到速率限制,就把电路置于开路状态。然而,电路必须将其重置为闭合状态。

 类似资料:
  • 我的计算图的一个阶段是类型的流。显然,这个阶段应该为每个请求分配一个响应,并在所有请求都被解决后发出seq。 现在,底层API有一个苛刻的速率限制策略,所以我每秒只能激发一个请求。如果我有一个的单个,我可以使用每秒发出单个元素的来这个流(如何限制Akka流每秒只执行和发送一个消息一次?),但在这种情况下我没有看到类似的解决方案。 有什么好的表达方式吗?我想到的想法是使用低层图DSL并在那里使用一秒

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

  • 据我所知,Facebook API的速率限制是每个令牌每600秒大约600次调用。 因此,当用户登录时,超过速率限制应该不会有问题,因为每个用户都有不同的用户令牌,因此每个用户每600秒将有600个呼叫的速率限制。但我担心的是,当用户浏览公共夜总会页面和活动时,当他们没有登录时,我的应用会超过速率限制,因为多个用户只能使用1个应用令牌和1个IP地址(我的服务器)。如果有多个用户同时浏览公共夜总会页

  • 在我的jenkins工作中,我得到这个错误为我的bot用户。我的限制是5000,我看到每秒钟大约有100个请求,我不确定哪个工作/服务正在使用机器人的请求。理想情况下,我的其他jenkins工作应该每分钟最多占用1个请求。 有没有办法找出是什么导致了如此高的请求率?或者任何API调用来列出在最后一分钟内进行的所有API调用或类似的东西?

  • 我试图在Spring云网关中设置速率限制。 我试图在应用程序中配置过滤器。yaml如下所示 我得到下面的错误 如何在spring云网关中实现速率限制?

  • 我正在做一个项目,处理一个电子邮件地址列表(大约400万个条目),并确定他们是否有相关的facebook帐户。我使用graph API搜索查询来检测这一点。现在有没有可能我会得到一个利率限制,或者甚至有任何官方利率限制吗?考虑到列表非常大,也许我们会做多线程请求,我担心任何速率限制。 我听说过非官方的600请求/ 600秒,但没有在facebook上看到任何证据。