У меня есть два узла микроуслуг, говорящих с одной общей базой данных mysql.Оба микросервиса имеют следующий код для создания пула соединений с пределом соединения 10 следующим образом:
// Инициализирующий пул
var pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
port: '3306',
user: 'root',
password: 'root'
});
function addConnection(req, res) {
pool.getConnection(function (err, connection) {
if (err) {
connection.release();
res.json({ "code": 500, "status": "Error" });
return;
}
connection.query("select * from user", function (err, rows) {
connection.release();
if (!err) {
res.json(rows);
}
});
connection.on('error', function (err) {
res.json({ "code": 500, "status": "Error" });
return;
});
});
}
Для базы данных mysql у меня max_connections установлено в 200 (ПОКАЗАТЬVARIABLES LIKE 'max_connections'; возвращает 200).
- При установленном пуле connectionLimit, равном 10, для каждого микросервиса, в каких случаях или сценариях число соединений для любого из микросервисов будет выше10?то есть когда и как службы узла смогут поддерживать больше соединений, чем ожидалось?
- Если у меня 3 экземпляра, работающих на одном микросервисе, то как работает пул connectionLimit?Каков будет предел соединений для каждого экземпляра микросервиса?
- В одном из микросервисов говорят, что у меня есть два apis, которые выполняют транзакции базы данных, и оба подключаются к базе данных (получение соединения) через две разные функции, имеющие одинаковую реализациюmysql.createPool ({}), как указано выше.Что произойдет, если оба apis будут вызываться одновременно, а количество запросов, сделанных для каждого из них в секунду, составляет 100 или более?Будет ли количество доступных подключений равным 10 или 20 (поскольку существует два пула mysql, созданных с ограничением соединения 10)?