javascript - Node.js 在服务调用之间共享相同的 HTTP 代理
问题描述
我有一个通过 HTTP 请求连接到外部服务的 node.js 后端。我正在使用node.js HTTP来管理我的请求。我的问题是关于如何正确使用带有该keep-alive
选项的 Node.js http 代理。
官方文档解释说我们应该创建一个新的代理并将其传递给请求。这对于我找到的所有示例都是相同的。他们都做这样的事情:
const http = require("http");
const agent = new http.Agent({
keepAlive: true
});
const options = {
host: 'myserver.com',
port: 80,
path: '/',
method: 'GET',
agent: agent,
};
const req = http.request(options, (res) => {
console.log("StatusCode: ", res.statusCode);
});
由于我的代理已
keepAlive
打开,我应该只创建一个代理实例,将其保存在某处(静态?),并在我每次向该服务发出请求时重用它。换句话说,我应该只new http.Agent
在创建后端时调用一次并继续使用相同的实例,否则我将为每个请求创建一个新代理。这个对吗?除了将其设为全局或静态之外,还有更好的方法来保留代理实例吗?我不知道我是否能在这里得到答案,或者直接作为 AWS 更好,但是假设我的后端是 AWS lambda 函数,它们如何在调用之间共享代理,因为 lambda 是短暂的,它甚至
keepAlive
对于那个用例有意义吗?
谢谢你的澄清。
解决方案
推荐阅读
- azure-devops - 空冲刺燃尽图
- sql - 删除 SQL 字符串中的非特定字符和空格
- python - 用于打开多个 txt 文件的 for 循环不返回任何内容
- gcloud - gcloud '没有这样的文件或目录'
- asp.net - Cookie 大小和性能?
- python-3.x - 尝试从 python 中的子包导入时出现 ModuleNotFoundError
- can-bus - 哪个 SAE J1939 PGN 编号可以删除 CAN 总线网络中的 ECU?
- python - Python:单击输入框时隐藏/删除标签
- android - LazyColumn 中每个项目的状态提升
- reactjs - CForm onSubmit 打印对象而不是字符串