Mongodb的可重试读操作

目录

重试读操作

需要条件

启用重读

支持可重试读的操作

不支持可重试读的操作

行为


重试读操作

连接mongodb进行读操作时,遇到网络或数据库集群的主节点切换导致的数据读问题。mongodb驱动自动尝试重新执行读操作。

需要条件

  • 数据库连接驱动支持mongodb4.2或以上版本。
  • 数据库服务器,需要3.6或以上版本。

启用重读

mongodb4.2或以上版本的驱动,默认允许可重试读。显示关闭可重试读。在数据库连接中设置retryReads=false。mongsh不支持可从试读操作。

支持可重试读的操作

复制代码
collection.aggregate
collection.count
collection.countDocument
collection.distinct
collection.estimatedDocumentCount
collection.find
database.aggregate
mongoClient.watch
mongoClient.listDatabases
database.listCollections
collection.listIndexes
某些数据库驱动还封装了一些重试读辅助方法或允许可重试读的方法。

不支持可重试读的操作

复制代码
db.collection.mapReduce()
getMore()
在database.runCommand中的读操作

行为

可重试读只能重试一次。能够帮忙检测网络问题或者复制集合主节点重新选择。无法支持长时间网络连接断开后的重试读操作。

在可重试读前,服务器选择读取节点按照原来命令指定的优先读取节点设置方式。如果数据库连接驱动无法选择一个使用原来的方式读取节点时,连接驱动会报错。在进行服务器选择时,驱动等待时间serverSelectionTimeoutMS。超过该设置时间后,可重试读不再连接数据库。

相关推荐
Mr__Miss1 小时前
说下Mysql的MVCC机制
数据库·mysql
老徐电商数据笔记1 小时前
BI工具与数据分析平台:数据价值呈现的最后一公里
数据库·数据挖掘·数据分析·bi·bi选型思考
码农水水2 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
酉鬼女又兒3 小时前
SQL24 统计每个用户的平均刷题数
数据库·sql·mysql
雷工笔记3 小时前
数据库|SQLServer2025安装教程
数据库·sqlserver
一只自律的鸡4 小时前
【MySQL】第六章 子查询
数据库·mysql
Knight_AL4 小时前
Spring Boot 事件机制详解:原理 + Demo
java·数据库·spring boot
野人李小白4 小时前
DBeaver 界面友好,支持多种数据库,具备强大的 SQL 编辑、可视化查询、数据迁移及插件扩展功能,是开发者首选的数据库管理工具。
数据库·sql
山峰哥4 小时前
SQL索引优化实战:3000字深度解析查询提速密码
大数据·数据库·sql·编辑器·深度优先
观音山保我别报错5 小时前
消息队列项目基础知识总结
linux·服务器·数据库