有人能解释如何使用request.js池哈希?如何使用请求JS(节点JS模块)池
的github notes说,这大约池:
池 - 包含这些请求代理的哈希对象。如果省略,则该请求将使用设置为节点的默认maxSockets的全局池。
pool.maxSockets - 包含在池中的套接字的最大量整数。
我有写这个代码写入一个CouchDB实例(注意问号)。基本上,谁连接到我的节点服务器的任何用户将写信给对方的DB独立:
var request = require('request');
request({
//pool:, // ??????????????????
'pool.maxSockets' : 100, // ??????????????????
'method' : 'PUT',
'timeout' : 4000,
'strictSSL' : true,
'auth' : {
'username' : myUsername,
'password' : myPassword
},
'headers' : {
'Content-Type': 'application/json;charset=utf-8',
'Content-Length': myData.length
},
'json' : myData,
'url': myURL
}, function (error, response, body){
if (error == null) {
log('Success: ' + body);
}
else {
log('Error: ' + error);
}
});
什么是最好的高吞吐量/性能?
高'maxSockets'数字有什么缺点?
如何创建一个单独的池来使用而不是全局池?为什么我只想创建一个单独的池?
在你的第一个使用示例中,第二行'http.request({...})的含义是什么? - 这仅仅是为了表明它在使用核心HTTP模块时工作,或者是需要声明被调用是为了正确地初始化在'request'库中使用的池?谢谢! – 2016-07-01 04:26:22
您的回答是我迄今为止获得的关于代理池和使用它们的利弊的最佳资源。非常感谢您花时间编写这个(y) –
**注意**最近版本的_Node.js_在默认情况下具有'Infinity'作为'maxSockets'。 –