我正在撰写依赖第三方API获取数据的应用程序。我试图查看在特定时间段内可以完成的请求数量以及我可以采取哪些措施来增加数量。
为了进行测试,我使用以下节点脚本:
var requrest = require('request');
var async = require('async'
var url = 'api-end-point.com/api';
var count = 500;
var token = 'api-token';
var start = Date.now();
async.times(count, function(n, next) {
req = request({
url: url,
method: 'GET',
headers: {
authorization: token
}
}, function(err, res, body) {
console.log('Completed request #' + n + '...Data = ', body);
next();
});
}, function(err, results) {
var stop = Date.now();
var diff = stop - start;
var timeInSeconds = diff / 1000;
var avgRequestTime = timeInSeconds / count;
console.log('Total Request Count = ', count);
console.log('Total Time = ', timeInSeconds, ' seconds');
console.log('Average request time = ', avgRequestTime, ' seconds');
});
在我的服务器上,我已经能够在大约30-35秒处理500个请求,每个完成请求的平均请求率约为65毫秒。我也试过在不同大小的服务器上运行它,但这似乎没有太大影响。我可以做些什么来增加单台机器完成的请求数量,还是由我联系的API服务器控制?有没有办法扩展我的系统,除了在我的端加上更多的服务器来查询API?