mongodb是如何处理从辅助节点读取的



我的默认连接字符串将读取首选项设置为primary,并且它具有所有副本集url。

当我使用这个代码时,我可以看到我的读数进入次要状态

let db = MongoPool.db()    
let collection = await db.collection("tableName", {readPreference:'secondaryPreferred'});
let result = collection.findOne( {userName: "" });

但是,如何使用连接池处理此连接?

是否为此读取创建了到辅助节点的新连接?

基本上,mongo是如何处理指向次要节点的读取的,它是建立新的连接,还是所有读取都转到主要节点,而主要节点将这些读取重定向到次要节点?

驱动程序将查询导向相应的节点。

在副本集拓扑中,驱动程序连接到所有节点,并直接向辅助设备发送查询。

在分片集群中,驱动程序连接到mongos路由器,后者将查询转发到各个分片的适当副本集节点。

最新更新