У меня есть приложение nodeJs, которое получает запросы от 0 до 3000 запросов в минуту (нерегулярно, без шаблона). Около 80% -90% запросов вызывают операции вставки или обновления mysql. версияКакие возможные причины могут вызвать проблему с ограничениями на ограничение очереди mysql в nodejs
Node - 4.2.2
Mysql версия - 14,14 Distrib 5.5.44, для Debian-Linux-гну (x86_64) с использованием Readline 6,2
рамки nodejs используется Restify
Я получаю связи из пула соединений mysql размера 20.
Время от времени (спорадическое) см. в вопросе «предел очереди mysql». Что, возможно, может вызвать эту проблему? (Кроме следующих причин)
- соединения не закрыто должным образом размера
- очереди не достаточно (Как я могу определить оптимальный размер очереди?)
- Проблемы с nodejs или MySQL версий (какие версии могут быть использованы для решения этой проблемы?)
- Проблема в MySQL запросов (какие возможные проблемы могут быть там в запросах, связанных с этим вопросом?)
- Probelm с каркасом nodejs используется (ли с помощью expressJs решения это?)
Edit1 Вот кадр, как я опрошена базу данных
connectionPool.getConnection(function (err, conn) {
if (err) {
return callback(err);
} else {
let args = [param1, param2];
let query = "SELECT...";
conn.query(query, args, function (err, rows) {
conn.release();
if (err) {
return callback(err);
} else {
return callback(null, rows);
}
});
}
});
Edit2 Вот конфигурации MySQL у меня есть на данный момент. Я не очень понимаю эти ценности. Они в порядке?
{
"connectionLimit": 10,
"acquireTimeout": 60000,
"host": "*****",
"port": "3306",
"user": "*****",
"password": "****",
"database": "*****",
"charset": "UTF8_GENERAL_CI",
"debug": false,
"waitForConnections" : true,
"queueLimit" : 15000
}
Какая структура вы используете для подключения к mysql в узле? Слишком много соединений должно дать вам еще одну ошибку, поэтому, скорее всего, не проблема. размер очереди, кажется, является конструктом вашей инфраструктуры nodejs для подключения к mysql, если я не ошибаюсь, поэтому проблема может быть здесь. Я очень сомневаюсь, что причиной этой проблемы является узел или mysql. –
Я использую драйвер mysql nodejs для подключения db. Казалось, что это самый стабильный и популярный драйвер. https://www.npmjs.com/package/mackql –
И да, размер очереди - это конструктор драйвера, выполненный с помощью кода nodejs. –