Реплика устанавливается не работает как ожидалось

StackOverflow https://stackoverflow.com//questions/24006188

Вопрос

Я настроил, как приведен ниже, и мой mongodb не нуждается в имени пользователя или пароль:

mongo: {
    module: 'sails-mongo',
    url: "mongodb://127.0.0.1:27017/mydb",
    replSet: {
        servers: [
            {
                host: "127.0.0.1",
                port : 27018
            },
            {
                host: "127.0.0.1",
                port : 27019
            }
        ],
        options: {connectWithNoPrimary:true, rs_name:"rs0"}
    }      
}
.

Это работает нормально, что означает, что я не получаю ошибку соединения, и я могу сделать запрос.Но когда я сбил 127.0.0.1:27017, 127.0.0.1:27018 становится первичным, как если бы я сделал rs.Status ().После этого я больше не могу делать какие-либо запросы и продолжать получать следующее:

Ошибка: Нет открытых соединений

Я уверен, что я правильно настроил реплика на мою локальную машину правильно, так как я использовал нативный драйвер MongoDB для проверки вышеупомянутого сценария (приносите первичный и вторичный захват как первичный), и нет проблем.

var url = 'mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/mydb?w=0&wtimeoutMS=5000&replicaSet=sg1&readPreference=secondary';

mongodb.MongoClient.connect(url, function(err, result) {
    if(err || result === undefined || result === null) {
          throw err;
    } else {
          db = result;  
    } 
});
.

Это было полезно?

Решение

Хорошо, я нашел ответ.Это сообщение испускало из-за Session.js.Я все прокомментировал в файл, и теперь он работает.Причина, по которой я думаю, находится в Session.js, он указывает только на один хост, который является оригинальным первичным.Когда вы сбиваете этот MongoDB Parea, Session.js больше не может подключиться, поэтому он бросил исключение.Я также попробовал строку URL Mongodb в Sessions.js, надевая также в хосты IP в наборе реплики (Mongodb: //127.0.0.1: 27017,127.0.0.1: 27019 / mydb) Но не удалось"Парусный подъемник".При поставке только один хост тогда это нормально.

Теперь, если мне нужно будет хранить информацию о сеансах, мне необходимо запустить другой экземпляр MongoDB, затем Session.js указывает на этот новый мгновенный момент.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top