有人能解釋如何使用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'。 –