node.js - 使用代理调用外部 API 的最佳方式
问题描述
我正在构建一个运行在 EC2 服务器上的 node.js 应用程序,它允许人们将他们的 API 密钥输入到特定服务,我代表他们调用这个 API 并将数据显示在仪表板中。
我使用的 API 提供商相对较新,他们设置了 IP 地址速率限制器。我联系他们解释我需要同时为多人调用 API,因此限制我的 IP 是不可持续的,因为我需要在两次调用之间等待 1 到 2 秒,并且有很多调用要打,但他们说他们无法将我的 IP 列入白名单或根据 API 密钥而不是 IP 进行速率限制,并建议我尝试使用代理向他们请求数据。
我尝试了多个代理提供商,但它们都非常慢(请求需要 1 秒而不是 <100 毫秒才能到达我的服务器),这使得整个事情再次变得不可持续。
有没有更聪明的方法/更简单的方法?我确实有一些其他 EC2 服务器正在运行,因此我正在考虑将它们用作代理,但我不确定这会对这些服务器的性能/已经在它们上运行的应用程序产生什么影响,如果我这样做可能会产生问题将终止这些服务器(我的应用程序依赖于它们)。
有没有其他最佳实践/简单的方法来做到这一点?
作为参考,我的代码如下所示:
const fetch = require('isomorphic-fetch');
const proxyAgent = require('https-proxy-agent');
const headers = {
...headers
agent: new proxyAgent("<proxy details>")
}
const data = fetch("<url>", {headers: headers})
...
谢谢
解决方案
推荐阅读
- c++ - 如何在 CMake Superbuild 中查找 dll/so 文件
- html - 导航时防止输入消失
- c - 将占位符 char* 发送到 free() 的最有效方法是什么?
- python - classmethod 在每次访问时返回一个新对象
- javascript - 检查用户是否使用 jQuery 滚动到 div 的底部
- javascript - 如何使用 NodeMailer(不是 SMTP)和 Promise(Bluebird)发送邮件?
- jupyter-notebook - 在python中将字符串转换为浮点数
- java - 将 Swagger 端点导出为单个 json 文件
- typescript - 打字稿部分联合类型
- java - Android工作室片段活动中的谷歌地图