У меня есть набор реплик, состоящий из 3 узлов со следующими состояниями:
сервер1: 27001 - вниз
сервер2: 27001 - вниз
server3: 27001 - Вторичное состояние и работает
Я поддерживаю устаревшее приложение, разработанное с использованием mongoskin, я хотел, чтобы оно могло подключаться к вторичным узлам, когда первичный недоступен для чтения.
Я пытался настроить readPreference на вторичное устройство, но не сработало
var mongoUrl = "mongodb://user:pass@server1:27001,server:27002,server:27003/?replicaSet=repl_test_1&authSource=admin&readPreference=secondary"
var db = require('mongoskin').db(mongoUrl);
Это сообщение об ошибке:
Произошла ошибка без обратного вызова для ее обработки при вызове SkinCursor.limit {MongoError: в списке нет действительных начальных серверов
на сервере. (/Appl/gref/gls-ws/soap/convertSingleCurrency/webService/core/node_modules/mongodb-core/lib/topologies/replset.js:1152:39)
в Object.onceWrapper (events.js: 273: 13)
на сервере Server.emit (events.js: 182: 13)
на сервере Server.EventEmitter.emit (domain.js: 441: 20)
в бассейне. (/Appl/gref/gls-ws/soap/convertSingleCurrency/webService/core/node_modules/mongodb-core/lib/topologies/server.js:269:68)
в Object.onceWrapper (events.js: 273: 13)
в Pool.emit (events.js: 182: 13)
в Pool.EventEmitter.emit (domain.js: 441: 20)
при подключении. (/Appl/gref/gls-ws/soap/convertSingleCurrency/webService/core/node_modules/mongodb-core/lib/connection/pool.js:77:12)
в Object.onceWrapper (events.js: 273: 13)
на Connection.emit (events.js: 182: 13)
в Connection.EventEmitter.emit (domain.js: 441: 20)
на сокете. (/Appl/gref/gls-ws/soap/convertSingleCurrency/webService/core/node_modules/mongodb-core/lib/connection/connection.js:121:49)
в Object.onceWrapper (events.js: 273: 13)
на Socket.emit (events.js: 182: 13)
в Socket.EventEmitter.emit (domain.js: 441: 20) имя: «MongoError», сообщение: «в списке нет допустимых серверов начальных значений»}
Существует ли какая-либо конфигурация в строке подключения mongo, которая позволяет приложению переключаться на вторичный сервер, когда первичный сервер недоступен?