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.mzph.cn/news/595757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电路笔记】-超级电容器

超级电容器 文章目录 超级电容器1、概述2、对电容器充电3、超级电容构造4、超级电容器示例15、超级电容器能量6、总结 超级电容器是能够存储大量电荷的电能存储设备。 1、概述 与以热的形式耗散能量的电阻器不同,理想的超级电容器不会损失能量。 我们还看到&#x…

【ITK库学习】使用itk库进行图像配准:变换Transform(三)

目录 1、itkAffineTransform 仿射变换2、itkBSplineDeformableTransform B样条可变形变换 1、itkAffineTransform 仿射变换 该类实现向量空间的仿射变换(例如空间坐标) 此类允许定义和操作n维仿射空间(及其关联的向量空间)对其自…

Caching SHA2 password 与 MySQL native password 的区别

前言 Caching SHA2 password 和 MySQL native password 是MySQL数据库管理系统中用于认证的两种不同的插件。这两种插件的主要区别在于它们使用的哈希算法和安全性 区别 MySQL native password:这是MySQL早期版本的默认认证插件,它使用SHA1哈希函数&a…

班主任是班级工作的什么人

在我们的学习生涯中,班主任是一个不可或缺的角色。他不仅是我们学术上的指导者,更是我们成长路上的引路人。 是班级的掌舵者。一个班级就像一艘船,航行在知识的海洋中。班主任就是这艘船的船长,他们带领着我们向着目标前进&#x…

【办公软件】修改U盘的默认盘符

在工作中我们可能会因为有一些大型软件设置了库文件路径(如Z盘)。在家办公时通过U盘的方式将库拷入在U盘中,但是到家里的电脑上,U盘插入后会默认一个盘符(如E盘),那么应该怎么操作呢&#xff1f…

国产化软硬件升级之路:πDataCS 赋能工业软件创新与实践

在国产化浪潮的推动下,基础设施软硬件替换和升级的需求日益增长。全栈国产化软硬件升级替换已成为许多领域中的必选项,也引起了数据库和存储领域的广泛关注。近年来,虽然涌现了许多成功的替换案例,但仍然面临着一些问题。 数据库…

前端食堂技术周刊第 110 期:Vue3.4、新版 Vue DevTools 开源、AI 2023 年度总结合集、Web Components 的另一个未来

美味值:🌟🌟🌟🌟🌟 口味:草原羔羊蝎 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看…

C#属性介绍

文章目录 一、简要介绍二、详细介绍2.1 例子2.2 属性和字段的比较2.3 自动实现属性2.4 静态属性2.5 只读/只写属性2.6 属性可访问性2.7 接口声明属性2.8 使用初始化器初始化属性 一、简要介绍 属性是代表类的实例或者类中的一个数据项的成员。 属性是字段和方法的交集&#xf…

【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行模式

【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 概述-CSDN博客 【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行环境搭建-CSDN博客 【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行模式-CSDN博客 目录 1、Hadoop运行模式 2、 编写集群分发脚本 xsync 2.1、scp (se…

判断线性相关性

线性相关是线性代数中的一个重要概念,用于描述向量或向量组之间的线性关系。以下是判断向量组是否线性相关的几种方法: 1. **根据定义判断**: - 如果存在一组不全为零的系数,使得这些系数与对应的向量组相乘后相加等于零向量&a…

如何为项目创建高效的项目进度表?

项目管理是一项负有巨大责任的工作,涉及到完成项目所需的大量流程和任务。如果没有任务和责任的线路图,很容易就偏离方向,无法了解项目每个阶段需要完成的任务。这就是为什么项目进度表是成功执行项目的核心所在。 什么是项目进度表&#xff…

MSVCR100.dll丢失,程序无法启动,快速修复,亲测有效

很多用户,在日常使用电脑的过程中都遇到过,电脑报错“程序由于缺失MSVCR100.dll文件,无法启动,需要重新安装解决”,不少用户卸载软件重装后,还是报错,那么应该怎么解决呢? 首先&…

FastApi-快速入门1

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.8 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快…

「实验记录」CS144 Lab1 StreamReassembler

目录 一、Motivation二、SolutionsS1 - StreamReassembler的对外接口S2 - push_substring序列写入ByteStream 三、Result四、My Code五、Reference 一、Motivation 我们都知道 TCP 是基于字节流的传输方式,即 Receiver 收到的数据应该和 Sender 发送的数据是一样的…

vue-cli项目中vue.config.js的配置

vue-cli项目中vue.config.js的配置 一、直接上代码 一、直接上代码 let path require(path) let glob require(glob)function resolve(dir) {return path.join(__dirname, src/${dir}) }module.exports {pages: {index: {// page 的入口entry: src/main.js,// 模板来源temp…

Java学习笔记

Java学习笔记 java发展先按黑马尚硅谷的路线来吧部分项目代码参考 第一阶段:JavaSE基础9天 中文API可以看菜鸟教程里的 java发展 jdk8后最大改变:lambda,stream 先按黑马尚硅谷的路线来吧 https://blog.csdn.net/qq_40991313/article/deta…

Spring Boot日志配置

在今天的数字化时代,日志记录已经成为任何应用程序不可或缺的一部分,它们是我们理解系统行为、诊断问题和监控应用性能的关键。对于使用Spring Boot的开发者来说,有效的日志管理就像是进行一场精确的数据舞蹈,需要精心编排每一个步…

198.【2023年华为OD机试真题(C卷)】万能字符单词拼写(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-万能字符单词拼写二.解题思路三.题解代码Pytho…

常用免费好用API汇总

短信验证码:可用于登录、注册、找回密码、支付认证等等应用场景。支持三大运营商,3秒可达,99.99%到达率,支持大容量高并发。通知短信:当您需要快速通知用户时,通知短信是最快捷有效的方式。短信…

为什么需要在bean上使用@EqualsAndHashCode(callSuper = true)这个注解

我们还是写一个案例,来探讨它的作用。 写三个类,一个是子类Child.class,一个是父类Person.class,一个是测试类Test.class Person父类很简单,就一个属性code; Child子类也很简单,继承了父类之后…