如何在环回中制定API限速策略

我只是想为每个帐户计划制定一个API请求速率限制,假设我们有用户和每个用户都有一个计划,每天有多lessAPI请求可以制定。

那么现在,我怎样才能在环回3.x的API限制政策。

谢谢

这样的策略只能用数据库来完成,比如redis / memcached。 对于我的项目,我依赖基于Redis的redback。 它有一个内置的RateLimit帮助器(除其他外),它负责处理一些raceconditions和primefaces事务。

*如果你没有一个数据库,你可以将它存储在内存中(在一个散列或数组),并使用间隔来刷新它,但我会用redback 🙂

这是一个访问控制策略。

您可以通过由angular色parsing器创build的自定义angular色来处理此问题。

通过创build自定义angular色并在当前用户超出速率限制的情况下检入该parsing器callback。

如果您打算在IBM Bluemix托pipe环境中使用Loopback,则可以使用其API Connect服务,其中包含基于客户计划的策略,以及API级别限制 ,监视,API计费和许多其他APIpipe理function。

StrongLoop API Microgateway由API Connect使用,但现在是开源的(2017年4月)。

由于Loopback只是Express上的一个层,所以可以使用Express lib。

对于单个独立环回服务器上的速率限制,您可以使用以下某个Express库:

  • 快递速率限制
  • 快递油门

如果您计划在一组Loopback服务器上使用此function,则需要将API调用计数存储为每个用户或用户会话的共享服务器状态的一部分。 这个select的武器是Redis,因为它是一个高性能的内存数据存储,可以缩放。 速率限制支持Redis的Express库包括:

  • 严格率限制器
  • 快递,畜生
  • 快递限制器

最后,你也可以在反向代理上实现速率限制。 请参阅Nginx速率限制