我只想根据帐户计划制定API请求率限制,因此我们假设我们有用户,并且每个用户都有一个计划,该计划对每天可以生成的API请求数量有一些限制。
现在,我如何在loopback 3.x中制定API限制策略。
由于
答案 0 :(得分:5)
如果您计划在IBM Bluemix托管上使用Loopback,您可以使用他们的API Connect服务,其中包括基于客户计划的策略API level throttling,监控,API计费和许多其他API管理功能
API Connect使用StrongLoop API Microgateway,但现在开源(2017年4月)。
由于Loopback只是Express上的一个层,您可以选择使用Express lib。
对于单个独立Loopback服务器的速率限制,您可以使用以下Express库中的一个:
如果您计划在Loopback服务器群集上使用此功能,则需要将API调用计数存储为每个用户或用户会话的共享服务器状态的一部分。选择的武器是Redis,因为它在内存数据存储中具有高性能,可以缩放。速率限制支持Redis的Express库包括:
最后,您还可以对反向代理实施速率限制。见Nginx Rate Limiting
答案 1 :(得分:1)
这样的策略只能用数据库进行,例如redis / memcached。对于我的项目,我依赖于基于Redis的redback。它有一个内置的RateLimit助手(以及其他),它负责一些竞争条件和原子事务。
*如果您没有数据库,可以将其存储在内存中(在散列或数组中)并使用间隔来刷新它,但我会使用redback :)
答案 2 :(得分:1)