#mysql #node.js
#mysql #node.js
Вопрос:
Я использую MySQL и создаю пул соединений MySQL один раз и повторно использую во всех других модулях, где это необходимо.
Когда мой код выполняется на одном ядре, это работает нормально, но когда я использую кластеризацию и запускаю приложение в системе с несколькими ядрами, мой пул соединений инициализируется несколько раз [в зависимости от количества ядер].
Как это исправить.
mysql.init(function (error) {
if (error) {
throw error;
}
var server = http.createServer(app);
server.listen(app.get('port'), function () {
logger.info('Express server listening on port ' app.get('port'));
});
});
Комментарии:
1. Я не уверен, в чем именно проблема. Если вы хотите ограничить общее количество подключений к вашей базе данных, вы можете указать ограничение на подключение .
2. Я хочу инициализировать пул соединений только один раз в своем приложении при его запуске и повторном использовании везде, но в режиме кластеризации он инициализируется несколько раз, что плохо. @robertklep
3.
cluster
Модуль запускает несколько отдельных процессов, что означает, что ему необходимо инициализировать пул соединений для каждого процесса (если вы не используете какое-то межпроцессное взаимодействие, что, вероятно, сведет на нет всю цель запуска процесса на ядро). Я не обязательно понимаю, почему это плохо.
Ответ №1:
Это нормально . Кластерный режим означает, что у вас есть копия вашего приложения, запущенная в каждом ядре . Этот процесс не использует общую память. Это отдельный процесс. Это не потоки.