er\u con\u count\u error使用knex时连接过多错误

iqjalb3h  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(220)

我正在尝试实现一个node.js应用程序,它允许大量并发用户将数据插入数据库。我使用knex处理数据库连接。我的目的是允许服务器异步处理来自百万用户的百万请求。我正在使用mysql ndb cluster 7.5。目前我正在使用ab测试工具对应用程序进行压力测试,但遇到以下错误:

ab -p 100.json -T application/json -c 1000 -n 1000 http://34.242.xxx.xxx:3000/insert
Benchmarking 34.242.xxx.xxx (be patient)
apr_socket_recv: Connection reset by peer (104)

从服务器中,我发现以下错误:

Unhandled rejection Error: ER_CON_COUNT_ERROR: Too many connections
goofy_noyce.1.f7o2c2dp6sb8@ip-172-31-xxx-xxx

这是我正在使用的代码:

const knex = require('knex')(require('../knexfile.js')

const insertData = function (tableName, timestamp, deviceId, data) {
  debug('insert');
  knex(tableName).insert({
timestamp,
deviceId,
data,
 })
.catch(err => debug(`error: ${err}`))
.then((dataid) => {
  debug(`Inserted with id: ${dataid}`);
    });
};

....

insertToDb(req.body.tableName, req.body.timestamp, req.body.deviceId, req.body.data);
res.status(201).json({ success: true });

这是knexfile:

const config = require('./config/config');

module.exports = {

production: {
client: 'mysql',
connection: {
  host: config.mysql_ip,
  database: config.mysql_database,
  user: config.mysql_user,
  password: config.mysql_pass,
},
pool: {
  min: 2,
  max: 10,
},
  },

};

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题