1

I'm using sails-mongo in my nodejs application, and my config looks like this:

mongoDb: {
adapter: 'sails-mongo',
url: 'mongodb://prod_user:prod_password@router-1-incloud:16888,router-2-incloud:16888/db_name',
auto_reconnect: true,
poolSize: parseInt(process.env.MONGO_POOL_LIMIT) || 10,
w: parseInt(process.env.MONGO_WRITE_CONCERT_INT) || 'majority',
reconnectInterval: 200,
wtimeout: parseInt(process.env.MONGO_WRITE_TIMEOUT_MS) || 2000,
retryMiliSeconds: 200,
numberOfRetries: 3,
readPreference: process.env.MONGO_READ_PREFERENCE || 'primaryPreferred',
socketOptions: {
  noDelay: true,
  keepAlive: 0,
  connectTimeoutMS: parseInt(process.env.MONGO_CONNECT_TIMEOUT_MS) || 2000,
  socketTimeoutMS: parseInt(process.env.MONGO_SOCKET_TIMEOUT_MS) || 2000
}

So when router-1-incloud:16888 goes down driver doesn't switch to router-2-incloud:16888 even when I restart my application, it always needs both routers to be available or it won't establish connection to mongo. Is there a config value I need to adjust so it automatically switches to any available host?

akhabaiev
  • 449
  • 1
  • 4
  • 10
  • how many members are there in replica set? What error does is show when router-1-incloud:16888 goes down? – Atish May 04 '18 at 18:17
  • @Astro the error in node is `MongoError: server router-1-incloud:16888 sockets closed` and it's 2 routers and 2 replicas. – akhabaiev May 06 '18 at 17:38

0 Answers0