Как обрабатывать объединение в пул соединений в кластерном режиме nodejs

#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:

Это нормально . Кластерный режим означает, что у вас есть копия вашего приложения, запущенная в каждом ядре . Этот процесс не использует общую память. Это отдельный процесс. Это не потоки.