首页 > 解决方案 > 为什么Mongo会从Secondary读取并将读取关注设置为Primary

问题描述

我有一个作为 PSS 架构的 mongo 设置,1 连接字符串看起来像 mongodb://mongo1,mongo2,mongo3/db1?replicaSet=rs 。

我的一个应用程序(nodejs)每隔一段时间就会尝试读取并得到一个not master and slaveOk=false错误。考虑到默认的读取问题,我希望 this 只能从主要读取。

问题:为什么驱动程序会将读取定向到辅助设备?

标签: node.jsmongodbmongodb-query

解决方案


好吧 - 得到一个 - not master and slaveOk=false 错误 - 当设置为读取主要时 - 将是当主要不可用时正确发生的情况。所以也许你真正的问题是为什么主要不可用?…..明白了吗?...在副本集中应该总是有主节点,但谁知道 - 在故障转移期间发生选举时必须有一个短暂的时刻......您可能需要检查日志以查看主节点关闭的频率...... ..现在,如果您不想出现此错误,请将读取首选项更改为 Primary Preferred。


推荐阅读