【发布时间】:2021-09-15 00:06:26
【问题描述】:
我有一个 Mongo 隐藏成员作为副本集的一部分,该副本集专用于报告和洞察(长时间运行的任务)等任务。我们使用 mongoose 5.7.4 直接连接到实例,如下所示:
mongoose.createConnection('mongodb://mongo-hidden-instance:27017/dbname',
{
useNewUrlParser: false,
useUnifiedTopology: true,
readPreference: "secondaryPreferred",
socketTimeoutMS: 1800000
}, cb);
我们可以正确连接到实例并运行我们的查询。但是,如果隐藏的实例断开了我们的连接,它一直保持活动状态,正在到达副本集的另一个成员。这种行为是我们没有预料到的,也是我们不想要的,我们只想在隐藏的实例上运行长时间的查询。
我怎样才能只连接到隐藏的实例,如果它出现错误而不是连接到副本集的另一个成员?
【问题讨论】:
-
你试试
secondary而不是secondaryPreferred? -
即使
secondary正在连接到其他副本集成员。