Node.js环境中优化axios请求速度设置

先看代码

const axios = require('axios');

const https = require('https');
const { Agent } = require('https');

// 使用自定义代理agent来启用HTTP/2
const agent = new Agent({
    keepAlive: true,//开启长连接
    maxSockets: 1000,
    ca: https.globalAgent.options.ca,
});


// 创建一个axios实例
const instance = axios.create({
    baseURL: 'https://www.bitget.fit', // 设置请求的基础URL
    timeout: 1000, // 请求超时时间(毫秒)
    httpsAgent: agent
});

很重要的就是这个  httpsAgent 参数,优化后直接从每次请求的  370ms 变到150ms

代码解释

1. const https = require('https');

这行代码导入了Node.js的https模块,该模块提供了用于HTTPS请求的功能。

2. const { Agent } = require('https');

这行代码从https模块中解构出Agent类。Agent类用于创建自定义的代理agent,可以配置代理的行为。

3. const agent = new Agent({ ... });

这行代码创建了一个新的Agent实例,并传入一个配置对象。这个对象定义了代理agent的行为:

keepAlive: true:启用长连接,这样在多个请求之间可以重用TCP连接,减少了建立新连接的开销。

maxSockets: 1000:设置代理agent可以同时打开的最大套接字数。这个值可以根据服务器的能力进行调整。

ca: https.globalAgent.options.ca:设置代理agent使用的CA证书,这里使用了https.globalAgent的默认CA证书。

                                             注意!!!

如果你请求的是非HTTPS的地址(例如http://www.bitget.fit),那么设置httpsAgent: agent将不会起作用。因为httpsAgent是专门用于HTTPS请求的代理配置,而HTTP请求需要使用http.Agent

如果你需要对HTTP请求也进行代理,你需要创建一个http.Agent的实例,并将其配置为所需的代理设置。然后,在发起HTTP请求时,将这个http.Agent实例传递给请求选项。

示例:

const http = require('http');
const { Agent } = require('http');

// 创建HTTP代理agent
const httpAgent = new Agent({
    keepAlive: true,
    maxSockets: 1000,
});

// 创建一个axios实例
const instance = axios.create({
    baseURL: 'https://www.bitget.fit', // 设置请求的基础URL
    timeout: 1000, // 请求超时时间(毫秒)
    httpAgent,
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值