gpt4 book ai didi

node.js - 如何使用第三方API和多个进程NodeJS处理速率限制

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:06 25 4
gpt4 key购买 nike

我正在构建一个集成了多个第三方API的nodejs应用,每个应用都有一个速率限制,平均为1200 req / min,每个请求都是按用户签名的,该限制仅由IP固定,而不是由用户固定,因此将得到在运行该应用程序后的几分钟后禁止。
我还没有找到解决此问题的经济方法(禁止使用商业代理解决方案)。

环境:
GCP,docker,kubernetes,nodejs 8

我是否需要构建自己的代理服务器,比如说我们通过此代理服务器转发http(s)请求,然后通过代理服务器与代理节点进行通信,每个代理节点都有自己的接口并具有唯一的外部IP?

有没有最简单的方法来解决这个问题?

我需要处理大约150,000个请求/分钟,每个节点的限制为1200个请求/分钟。

最佳答案

至少有两种免费的开源解决方案来限制速率:


ApiAxle(它允许您设置defining an API时的速率限制,例如QPM,QPS等)
Kong(速率限制docs


两者都是相当活跃的项目,如果您有朝一日需要它,则可以在社区周围建立各种支持和企业功能选项。但是,以我的经验,与任何一个构建可行的解决方案都需要一些时间。

此外,许多Web服务器还具有在短时间内限制速率的功能。看一下Nginx的ngx_http_limit_req_module模块和this介绍性博客文章。

由于您使用的是GCP,因此您可能至少要考虑具有Apigeerate limiting built in。这可能是最简单,最快的入门方法。但是,它看起来相当昂贵。

关于node.js - 如何使用第三方API和多个进程NodeJS处理速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52919612/

25 4 0
文章推荐: node.js - 获取包含特定文件nodejs的所有第一个子文件夹
文章推荐: node.js - 如何使用connection.db.collection函数?
文章推荐: python - 从URL上传Django ImageField
文章推荐: node.js - Lambda Nodejs -( Node :1) UnhandledPromiseRejectionWarning: #