我是否需要在Mongoose,Express-session-mongo和mongolian中指定副本集的所有主机?

时间:2011-12-03 01:38:50

标签: mongodb node.js driver mongoose

我将MongoDB副本设置为:

Host1: 10.10.10.1:27017
Host2: 10.10.10.1:27018
Host3: 10.10.10.2:27017
Host4: 10.10.10.2:27018

当我设置连接时(例如IN Mongoose),我必须这样做:

mongoose.connectSet('mongodb://10.10.10.1:271017/mydb,
mongodb://10.10.10.1:27018/mydb,
mongodb://10.10.10.2:27107/mydb, mognodb://10.10.10.27108/mydb);
我可以这样做吗?

mongoose.connectSet('mongodb://10.10.10.1/mydb, mongodb://10.10.10.2/mydb');

express-session-mongo和mongolian怎么样?如何设置与副本集的连接?

为什么我必须定义所有主机名?驱动程序不应该知道所有主要和次要的并保留查找表,而不是在设置连接时手动定义它吗?

1 个答案:

答案 0 :(得分:2)

所以如果你在原始集合中至少有一个成员,那么mongoose使用的mongodb驱动程序将找到复制集的所有成员。这是因为复制集中的每个成员都知道所有其他成员。但是你知道的服务器越多越好,因为它更有可能找到一台服务器,以防你唯一传入的服务器停机。