当前位置: 首页 > news >正文

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。超过该设置时间后,可重试读不再连接数据库。

http://www.lryc.cn/news/275503.html

相关文章:

  • 2024年1月2日-1月7日(ue5底层渲染+ue arpg+项目需求)
  • MySQL中的视图和触发器
  • uView-UI v2.x常见问题整理
  • MBTI职业性格测试 28题(免费版)
  • Springcloud 微服务实战笔记 Ribbon
  • CSS基础笔记-04cascade-specificity-inheritance
  • Spring应用的部署与管理
  • B端产品经理学习-需求挖掘
  • 整数规划基本原理
  • 秋招复习之堆
  • 算法训练营Day36(贪心-重叠区间)
  • 如何利用Oracle官方网站不登录账号下载和安装非最新版本的JDK(版本自由选择)
  • 税法相关的基础知识
  • ListNode 2487. 从链表中移除节点,单调栈的应用
  • vue3中pdf打印问题处理
  • 如何向嵌入式设备中添加tcpdump工具
  • 伦茨科技Apple Find My认证芯片-ST17H6x芯片
  • uni-app 前后端调用实例 基于Springboot 数据列表显示实现
  • python渗透工具编写学习笔记:10、网络爬虫基础/多功能编写
  • Python武器库开发-武器库篇之子域名扫描器开发(四十一)
  • 通俗易懂的15个Java Lambda表达式案例
  • 十七:爬虫-JS逆向(上)
  • How to implement anti-crawler strategies to protect site data
  • 王国维的人生三境界,这一生至少当一次傻瓜
  • Jmeter二次开发实操问题汇总(JDK问题,jar包问题)
  • 网络安全B模块(笔记详解)- 数字取证
  • 阿里云服务器8080端口安全组开通图文教程
  • vmlinux, vmlinux.bin, bzImage; cmake的find_package(Clang)新增了哪些变量( 比较两次记录的所有变量差异)
  • webpack配置入门
  • Elasticsearch 8.X进阶搜索之“图搜图”实战