如何减少单个客户端的服务器响应时间和每秒数千个请求?
问题描述:
我正在尝试使用nodejs实现一个openrtb出价工具,同时运行两个nodejs应用程序实例。 为了测试,我启动了一个简单的hello world节点服务器,并从同一台机器发送每秒100个请求。但响应时间至少需要50-200毫秒,而且每个请求的响应时间也不尽相同。如何减少单个客户端的服务器响应时间和每秒数千个请求?
我很好奇为什么它的行为如此。我期待非常快速的响应,因为: 1)服务器和客户端是同一台计算机 2)在服务器中没有处理,只是一个直接的hello world响应上 3)服务器只需要处理一个客户端
我希望服务器能够在100ms内处理来自同一客户端的数千个请求。
有什么办法可以改善我节点服务器的响应时间(除了使用已经尝试过的多个实例)。
答
我怀疑你的设置有问题。
你可以试试吗?
'use strict';
const http = require('http');
const document = Buffer.from('Hello world!');
const server = http.createServer((req, res) => {
// handle some POST data
if (req.method === 'POST') {
var body = [];
req.on('data', (chunk) => {
body.push(Buffer.from(chunk));
}).on('end',() => {
res.end('You posted me this: ' + Buffer.concat(body).toString());
});
// handle some GET url
} else if (req.url === '/') {
res.end(document);
} else {
res.end('Unknown request by: ' + req.headers['user-agent']);
}
});
server.listen(3000);
他们声称他们可以处理1M requests per second。
嗨,我试着和你给的代码一样。但你是否打算给'uwt.http.createServer'而不是'http.createServer'代码? –