Реплика устанавливается не работает как ожидалось
-
20-12-2019 - |
Вопрос
Я настроил, как приведен ниже, и мой 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 указывает на этот новый мгновенный момент.