pymongo:使用 MongoReplicaSetClient 的优点?

2024-03-22

看来两者Mongo客户端 http://api.mongodb.org/python/current/api/pymongo/mongo_client.html and MongoReplicaSet客户端 http://api.mongodb.org/python/current/api/pymongo/mongo_replica_set_client.html可以连接到mongo副本集。事实上,它们的文档页面几乎相同 - 相同的选项、相同的方法等 - 除了后者的构造函数要求我指定一个副本集。

在这两种情况下,我们都可以指定读取首选项。在这两种情况下,如果发生降级,我们必须处理 AutoReconnect 异常。

所以我的问题是:

  1. 既然可以用两者执行完全相同的操作,为什么要使用其中一种而不是另一种呢?

  2. 两者都可以进行二次读取,对吗?文档说 ReplicaSetClient 的优点是我们可以进行二次读取,但是clearly http://api.mongodb.org/python/current/api/pymongo/index.html#pymongo.read_preferences.ReadPreference他们在两者中都得到支持。

  3. The 文档 http://api.mongodb.org/python/current/examples/high_availability.html#mongoreplicasetclient说 ReplicaSetClient 具有“副本集健康监控”功能。这到底是什么意思呢?是否有我可以调用的新方法可以告诉我有关 replset 的运行状况的信息,而我无法通过 MongoClient 做到这一点?

  4. In theory https://stackoverflow.com/a/17859283/3788MongoReplicaSetClient 将连接到 replset 的所有成员,而不仅仅是一个。这是错误的:您可以删除或省略连接字符串中的任何服务器,并且 MongoClient 和 MongoReplicaSetClient 仍然能够连接。我错过了什么吗?


这是一个令人困惑的 API 选择,我们在 PyMongo 2.x 中感到遗憾。我们将于 2015 年 4 月将所有客户端类合并到 PyMongo 3 中的 MongoClient 中:

http://emptysqua.re/blog/good-idea-at-the-time-pymongo-mongoreplicasetclient/ http://emptysqua.re/blog/good-idea-at-the-time-pymongo-mongoreplicasetclient/

同时:

  1. 当您计划连接到整个副本集时,请使用 MongoReplicaSetClient。 MongoClient 仅连接到one member.
  2. 单个 MongoReplicaSetClient 可用于执行主要或辅助读取,以及通过读取首选项进行更复杂的决策,请参阅我关于这个主题的博客文章 http://emptysqua.re/blog/reading-from-mongodb-replica-sets-with-pymongo/。 MongoClient 将连接到one副本集(主副本)的成员并始终从中读取数据,除非您使用 MongoClient 直接连接到辅助副本集,在这种情况下,它将始终从该辅助副本读取。
  3. MongoReplicaSetClient 使用后台线程监控集合的运行状况,该线程定期检查所有成员。客户端会跟踪成员是否上线,跟踪他们的 ping 时间,并注意到何时添加成员。这将减少您在片状网络上或副本集配置更改时看到的异常数量,并且允许客户端正确实现读取首选项。
  4. MongoReplicaSetClient 实际上确实连接到所有成员,而 MongoClient 仅连接到one成员。 MongoReplicaSetClient 尝试连接到连接字符串中列出的每个成员;一旦它连接到一个成员,它就会要求该成员提供所有其他成员的列表。从此时起,它会忽略您的连接字符串并使用从它连接到的成员获得的列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pymongo:使用 MongoReplicaSetClient 的优点? 的相关文章

  • 最近的 AWS 区域的客户端 IP 地址

    Question 我想从客户端设备将一些数据上传到 AWS 但我想上传到最近的 AWS 区域的 S3 存储桶 同样 我希望能够从最近的区域下载 当然 我会在每个区域设置一个存储桶 我可以使用一个系统 它可以获取客户端的 IP 地址 然后确定
  • Pandas - 按每个可能的键组合聚合

    我有一个 DataFrame Pandas 我想通过 A B C 和 D 列的组合尽可能按数据进行分组 假设它具有以下形式 A B C D E F G 0 Y X Y Z 1 2 7 1 Y X Y Z 3 4 8 2 X Y U V 1
  • Flask:缓存静态文件(.js、.css)

    我真的找不到任何这方面的资源 那么如何将视图 函数的缓存与静态文件 即 css js 分开 我想将静态对象缓存一周 另一方面 我只需要缓存函数 视图几分钟 当我执行以下操作时 from flask ext cache import Cach
  • MongoDB - 解释特定的解释输出

    我使用的是 MongoDB 版本 2 4 8 test 2014 03 25 14 42 13 0 gt gt gt db users getIndexes v 1 key id 1 ns test users name id v 1 ke
  • 将 SQLite 的 FTS3/4 与 Python 3 结合使用

    我一直在使用 python 的 Flask 框架开发 peewee 的示例博客应用程序 看https github com coleifer peewee https github com coleifer peewee 内部示例 gt 博
  • 在 Chaquopy 中转换数组和张量

    我该怎么做呢 我看到你的帖子说你可以将 java 对象传递给 Python 方法 但这不适用于 numpy 数组和 TensorFlow 张量 以下以及其各种变体是我尝试过的 但没有成功 double anchors new double
  • pygraphviz,导入错误:未定义的符号:Agundirected

    import pygraphviz Traceback most recent call last File
  • 嵌套重组 - Django

    我有一个包含以下字段的模型 日期 员工 和 计划时间 每个员工对于不同的日期都有不同的计划工作时间 我正在尝试构建我的模板 其中员工按行列出 他们的计划工作时间列在正确的相应日期下的列中 像这样的东西 https i stack imgur
  • Pandas 过滤 - 非索引列上的 Between_time

    我需要过滤掉特定时间的数据 DataFrame 函数 Between time 似乎是执行此操作的正确方法 但是 它仅适用于数据帧的索引列 但我需要原始格式的数据 例如 数据透视表期望日期时间列具有正确的名称 而不是索引 这意味着每个过滤器
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • 为什么 1.__add__(2) 不起作用? [复制]

    这个问题已经存在了 可能的重复 访问 python int 文字方法 https stackoverflow com questions 10955703 accessing a python int literals methods 在P
  • 在 Qt Creator 中相互公开 QML 组件

    我正在使用 Qt Quick 和 PySide2 开发仪表板应用程序 但在 Qt Creator 的设计模式中公开我的 QML 组件时遇到问题 我的文件夹结构如下所示 myapp mycomponents component1 qml co
  • 为 pandas 数据框中的两列创建邻接矩阵

    我有一个以下形式的数据框 index Name A Name B 0 Adam Ben 1 Chris David 2 Adam Chris 3 Ben Chris 我想获得邻接矩阵Name A and Name B ie Adam Ben
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 如何将多索引数据帧与单个索引数据帧连接?

    df1 的单个索引与 df2 的多索引的子级别匹配 两者都有相同的列 我想将 df1 的所有行和列复制到 df2 它类似于这个线程 将单索引 DataFrame 复制到多索引 DataFrame https stackoverflow co
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • 如何在Python中从stdin中逐行读取

    每个人都知道如何在 C 中计算 STDIN 中的字符 但是 当我尝试在 python3 中执行此操作时 我发现这是一个难题 计数器 py import sys chrCounter 0 for line in sys stdin readl

随机推荐

  • 来自 learnsauce.com 的 google+ 集成代码引发了很多错误并且构建失败

    我尝试了很多网站进行 google 登录集成 但即使是 Developers android 代码也有很多错误 于是我看了一个学酱的视频 这是 Learn Sauce 的 G 集成视频教程的链接 https www youtube com
  • Swift3 GCD 中的 main.async 与 main.sync() 与 global().async

    示例 A 这会导致应用程序崩溃 DispatchQueue main async let url URL string imageUrl do let data try Data contentsOf url DispatchQueue m
  • ProtocolViolation:错误:绑定消息提供 0 个参数,但准备好的语句“”需要 1 个参数

    我正在尝试创建一个留下评论的独特患者列表 按照最先留下最近评论的患者的顺序排列 这是我用于创建列表的 Ruby erb 代码 comment list order created at desc each with index do com
  • Java 中的 x86 80 位浮点类型

    我想模拟 x86 扩展精度类型并执行算术运算并转换为 Java 中的其他类型 我可以尝试使用 BigDecimal 来实现它 但涵盖 NaN 无穷大和强制转换的所有特殊情况可能是一项乏味的任务 我知道一些库提供比 double 精度更高的其
  • 增加java中单个工作线程的堆栈空间

    在我的java web应用程序中 我有一个后台工作线程 它需要大量的堆栈空间 因为它使用activiti工作流引擎和groovy脚本任务运行一个非常复杂的工作流 目前 我需要在 64 位 Java 和 Tomcat 上将 JVM Xss 设
  • 不同平台上的平台默认字符集?

    一些遗留代码依赖于平台的默认字符集进行翻译 对于 西方世界 中的 Windows 和 Linux 安装 我知道这意味着什么 但考虑到俄罗斯或亚洲平台 我完全不确定他们平台的默认字符集是什么 只是 UTF 16 因此我想知道执行以下代码行时会
  • Array.prototype.includes函数如何比较对象

    在 ECMA 规范中 我们读到Array prototype includes https tc39 es ecma262 sec array prototype includes uses 相同值零 https tc39 es ecma2
  • 为什么错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:数字

    我正在运行这个程序来显示 SVG 图像 import React Component from react import View from react native import Expo from assets check mark s
  • 不幸的是应用程序已停止 - android.os.NetworkOnMainThreadException [重复]

    这个问题在这里已经有答案了 我正在编写一个应用程序 其中允许用户输入其详细信息 但每当用户单击 提交 按钮时 我都会收到错误消息 错误消息如下 不幸的是应用程序已停止 android os NetworkOnMainThreadExcept
  • 通过键盘触发 JQuery 模态框的 Ctrl+P 打印

    我有一个在 JQuery 模态框中弹出的文档 该文档末尾有一个打印按钮 只需打印弹出框中的文档 我正在寻找一种解决方案 可以通过按 Ctrl P 打印弹出框 现在 Ctrl p 打印所有页面 包括背景 我只是希望找到一个解决方案 帮助我仅在
  • 如何使用 MSTest 从命令行运行 SpecFlow 场景?

    我有 Visual Studio 2010 并且我们有两个使用的 VS 解决方案 第一个是 Web 应用程序 第二个是严格用于 SpecFlow 测试 同时运行两个 Visual Studio 实例来运行 SpecFlow 功能会占用所有可
  • 从另一个网站获取数据

    我正在使用 PHP 创建一个新网站 我想从另一个有我的个人资料的网站获取数据 其中包含壁纸 徽标等 我想从该网站获取数据并将其显示在我的新网站的内容部分中 请给我一些关于如何在 PHP 中完成此任务的想法 提前致谢 参见例如这卷曲延伸 ht
  • Clojure 中的惯用模式函数

    我正在学习 Clojure 想要一些关于惯用用法的建议 作为小型统计包的一部分 我有一个计算一组数据的众数的函数 背景 众数是一组数据中最常见的值 几乎有十几种已发布的算法来计算它 这里使用的算法来自 Bernard Rosner 的 生物
  • 鼠标移动时滚动窗口

    大家好我的意思是 当鼠标移向窗口边缘 x 或 y 或两者 时 我希望页面滚动 当鼠标停止移动时 我希望页面停止滚动 有很多关于如何基于使用 onClick 事件或窗口边缘的滚动区域进行滚动的示例 但基于鼠标光标的移动的示例并不多 任何帮助将
  • 解析多部分表单数据

    我正在尝试组合一个 HTML POST 表单 该表单具有两个字段 文件上传和文本字段 由于表单具有用于文件上传的 multipart form data 类型 因此我无法通过正常的 PHP POST 变量获取文本字段 那么如何使用 PHP
  • ASP.NET 中的静态对象浪费内存?

    前几天我只是想知道这个问题 我不太确定 ASPX 如何管理垃圾处理 但据我所知 完成加载 不会删除静态内存值或在页面重新加载后 至少就 C 而言 静态意味着内存分配会跟随您的程序 直到程序本身关闭 ASPX 中也是这样吗 如果我有一个静态值
  • 我们可以在 C# 项目中使用 COM 对象吗?

    我按照教程制作了一个 C COM 对象 http www codeproject com Articles 18939 C Com http www codeproject com Articles 18939 C Com 现在我想在 C
  • VB.NET 中的 UploadString(Post 方法)不起作用

    我正在尝试将简单数据发布到某个站点 在本例中发布到本地服务器上的 php 文件 我的 VB NET 代码 Dim W As New Net WebClient Dim A As String W Encoding System Text E
  • Google 如何确定将页面索引为讨论页面? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在自己建立一个问答网站 我想让这个网站被Google索引为问答网站或论坛 可以在使用Google中的 讨论 时检索到 根据我的个人经验 当我想获得
  • pymongo:使用 MongoReplicaSetClient 的优点?

    看来两者Mongo客户端 http api mongodb org python current api pymongo mongo client html and MongoReplicaSet客户端 http api mongodb o