我将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怎么样?如何设置与副本集的连接?
为什么我必须定义所有主机名?驱动程序不应该知道所有主要和次要的并保留查找表,而不是在设置连接时手动定义它吗?
答案 0 :(得分:2)
所以如果你在原始集合中至少有一个成员,那么mongoose使用的mongodb驱动程序将找到复制集的所有成员。这是因为复制集中的每个成员都知道所有其他成员。但是你知道的服务器越多越好,因为它更有可能找到一台服务器,以防你唯一传入的服务器停机。