Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何提高发出https请求的我的nodejs自定义库的tps(吞吐量)_Node.js_Axios_Node Request_Node Fetch - Fatal编程技术网

Node.js 如何提高发出https请求的我的nodejs自定义库的tps(吞吐量)

Node.js 如何提高发出https请求的我的nodejs自定义库的tps(吞吐量),node.js,axios,node-request,node-fetch,Node.js,Axios,Node Request,Node Fetch,创建了一个nodejs库,该库使用客户端证书(.crt、.key文件)向其他服务器发出https请求以获取响应。为了提出请求,我使用了“请求”npm模块 在对图书馆进行基准测试的同时, 我向我的图书馆提出了2000个请求,但图书馆无法处理超过150-200个请求 同时。假设我使用了Http服务器,那么库吞吐量同时增加了1800-1850。 我观察到的是,在发出https请求时,我认为事件循环被阻塞了。因此它无法处理或接受请求 我还尝试过使用https核心模块、节点获取、axios npm模块。我

创建了一个nodejs库,该库使用客户端证书(.crt、.key文件)向其他服务器发出https请求以获取响应。为了提出请求,我使用了“请求”npm模块

在对图书馆进行基准测试的同时, 我向我的图书馆提出了2000个请求,但图书馆无法处理超过150-200个请求 同时。假设我使用了Http服务器,那么库吞吐量同时增加了1800-1850。 我观察到的是,在发出https请求时,我认为事件循环被阻塞了。因此它无法处理或接受请求

我还尝试过使用https核心模块、节点获取、axios npm模块。我的图书馆的吞吐量没有差别

此外,我们还尝试使用nodejs的集群概念。但它不适合我的图书馆

请帮助我做些什么,以提高我的图书馆的吞吐量

我的代码:

const request = require('request');
const fs = require('fs');
const path = require('path');

function makeRequest() {

    let headers = {'Content-Type':'application/json'};

    let body = '{name:'library'}';

    let options = {
        url: 'https://IP:PORT/CONTEXT',
        method: 'POST', 
        headers: headers,
        body: body,
        agentOptions:
        {
            cert: fs.readFileSync(path.resolve(__dirname, 'ssl/my.crt')),
            key: fs.readFileSync(path.resolve(__dirname, 'ssl/my.key')),
            passphrase: '123456'
        }
    }

    request(options, (err, response, body) => {
        if (err) {
            console.log('err :>> ', err);
        } else {
            console.log('response :>> ', response.statusCode);
        }
    })

}