【问题标题】:How to make API rate limit policy in loopback如何在环回中制定 API 速率限制策略
【发布时间】:2017-06-07 02:40:36
【问题描述】:

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

那么现在,我如何在 loopback 3.x 中制定 API 限制策略。

谢谢

【问题讨论】:

    标签: node.js rest express loopbackjs strongloop


    【解决方案1】:

    如果您计划在 IBM Bluemix 托管上使用 Loopback,您可以使用他们的 API Connect 服务,其中包括基于客户计划的策略以及 API level throttling、监控、API 计费和许多其他 API 管理功能。

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

    由于 Loopback 只是 Express 之上的一个层,您也可以只使用 Express 库。

    对于单个独立 Loopback 服务器的速率限制,您可以使用以下 Express 库之一:

    如果您打算在 Loopback 服务器集群上使用它,您需要将 API 调用计数存储为每个用户或用户会话的共享服务器状态的一部分。为此选择的武器是Redis,因为它是可扩展的内存数据存储中的高性能。支持 Redis 的限速 Express 库包括:

    最后,您还可以在反向代理上实施速率限制。见Nginx Rate Limiting

    【讨论】:

      【解决方案2】:

      这是一个访问控制策略。

      您可以通过role resolver 创建的自定义角色来处理此问题。

      通过创建自定义角色并在当前用户是否超出速率限制时签入解析器回调。

      【讨论】:

        【解决方案3】:

        这样的策略只能*使用数据库,例如 redis/memcached。对于我的项目,我依赖基于 Redis 的 redback。它有一个内置的 RateLimit 助手(以及其他),它负责处理一些竞争条件和原子事务。

        * 如果你没有数据库,你可以将它存储在内存中(在哈希或数组中)并使用间隔来刷新它,但我会选择 redback :)

        【讨论】:

        • 只是出于好奇,您如何将 redback 与 LoopBack 一起使用?
        猜你喜欢
        • 2023-01-12
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        • 1970-01-01
        • 2014-08-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多