对冲阅读期权
从用于分片集群的 MongoDB 4.4 开始,您可以指定对非读取首选项使用对冲读取。primary
通过对冲读取,mongos
实例可以将读取操作路由到每个查询分片的两个副本集成员,并从每个分片的第一个响应者返回结果。
以下操作支持对冲读取:
collStats count dataSize dbStats distinct |
filemd5 find listCollections listIndexes planCacheListFilters |
---|---|
为了为读取首选项指定对冲读取,MongoDB 4.4 为读取首选项引入了对冲读取选项。
启用对冲读取
要使用对冲读取,请为非读取首选项启用对冲读取选项primary
。读取首选项nearest
默认指定对冲读取。
- 使用驱动程序时,请参阅司机的阅读偏好API 。
- 使用时
mongosh
, 您可以使用辅助方法cursor.readPref()
和Mongo.setReadPref()
.
附加信息
有关对冲读取的更多信息,请参阅对冲读取。
使用对冲读取的节点选择
有关对冲读取的节点选择的详细信息,请参阅 读取首选项和碎片。
您必须指定maxStalenessSeconds
90 秒或更长的值:指定较小的maxStalenessSeconds
值会引发错误。客户端通过定期检查每个副本集节点的最新写入日期来估计从节点的陈旧性。由于这些检查并不频繁,所以陈旧性估计是粗略的。因此,客户端不能强制执行maxStalenessSeconds
小于 90 秒的值。
命令serverStatus
及其对应 mongosh
方法db.serverStatus()
返回 hedgingMetrics
。
← 阅读偏好maxStalenessSeconds
阅读偏好用例
原文链接 -
译者:陆文龙