前言
高并发在大型系统中较为常见,那么Nodejs性能在高并发的情况下性能如何呢。基于Nodejs的express框架实现简单接口监听,并实现写入数据库。利用ab压力测试工具包对高并发状况进行模拟。
环境:win10, node v8.11.3 , MySQL v5.5.62
Node相关模块:mysql,express
连接数据库
const mysql = require('mysql');
// 数据库配置
MYSQL_CONF = {
host: 'localhost',
user: 'root',
password: '123',
port: '3306',
database: 'map_game',
};
const con = mysql.createConnection(MYSQL_CONF);
//建立连接
con.connect();
function exec(sql) {
const promise = new Promise((resolve, reject) => {
con.query(sql, (error, result) => {
if (error) {
reject(error);
}
resolve(result);
});
});
return promise;
}
监听接口实现
var express = require("express");
var app = new express();
var port = 3000;
app.get('/test', (req, res) => {
exec("INSERT INTO `gps_data` VALUES(id,'123456', '75', '100', '2021-06-01','120.1', '22.1');");
res.send({ errcode: 0, data: {} });
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
ab测压工具使用
1.下载安装
(1)官方下载地址,如何安装可以参考文章(文献1,文献2)。
(2)运行相关命令
cmd命令运行:
ab -n2000 -c100 -t1 http://localhost:3000/test
结果:模拟了100台客户端,1秒内请求2000次接口,结果仅完成了772次请求。多次运行命令,经过观察发现,在上述模拟条件下,请求完成数量大概在600-900之间。
ab工具更多使用参数可以参考这里
展望
后续有机会将使用其他语言和框架进行测试,并对比测压结果。