ER_CON_COUNT_ERROR Слишком много соединений Ошибка при использовании Knex - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь реализовать приложение Node.js, которое позволило бы большому количеству одновременно работающих пользователей вставлять данные в базу данных.Я использую Knex для обработки соединений с базой данных.Моя цель - позволить серверу асинхронно обрабатывать миллионы запросов от миллионов пользователей.Я использую MySQL NDB Cluster 7.5.В настоящее время я использую инструмент ab test для стресс-тестирования приложения, но я застрял со следующей ошибкой:

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,
},
  },

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...