mongodb - mongodb 服务器监控和发现有什么新功能?旧的有什么限制?他们现在是如何克服的?
问题描述
我正在尝试更新我的 node-mongodb-native,但它要求我添加 useUnifiedTopology 选项。我只想知道旧的监控工具有哪些问题以及它们是如何解决的。
解决方案
该useUnifiedTopology
选项是在 MongoDB 3.2.1 Node.js 驱动程序中引入的,并将成为今年晚些时候 4.x 驱动程序版本中的默认行为。这代表对节点驱动程序的服务器发现和监控 (SDAM) 实现的更改,而不是对MongoDB SDAM 规范的更改。
3.2.1 版本说明包含更改的概述:
在这个版本中,我们非常高兴地宣布完全重写驱动程序“拓扑”层的即时可用性。这是负责服务器选择、服务器发现和监控等事情的驱动程序的核心大脑。这项工作将三个现有的拓扑概念(
Mongos
、、ReplSet
和Server
)组合成一个类型Topology
。新Topology
类型使用相同的机制来表示所有三种类型,大大提高了我们维护代码的能力,并减少了重复错误的机会。Topology 类不再使用回调存储,而是依赖服务器选择循环来执行操作。这意味着失败的操作将更快地失败,并具有更准确的堆栈跟踪和有关失败的详细信息。它通常可以更容易地推断每次执行操作时驱动程序正在做什么。
在较新的 3.x 节点驱动程序版本中也有一些需要该useUnifiedTopology
选项的功能,例如v3.3.0中引入的用于分片集群的 SRV 轮询。
推荐阅读
- r - 当原始因子水平由字符串组成时,因子到数字的正确转换是什么?
- python - Python:列表内容的所有可能组合
- javascript - 在 React 应用程序内的 JavaScript 中以特定方式合并两个数组
- java - 删除标记并同时删除firestore中的文档
- bots - 计数游戏不和谐js
- ruby-on-rails - 需要在 rails Helper 中从 Jbuilder 创建一个 json 字符串
- docker - Docker:如何将自己添加到 Windows 10 主页上的 docker-users 组?
- python - Python 中的一行平均值(使用 Pandas 读取 CSV 文件)
- node.js - Angular - 如何导入 googleapis 库?
- json - 在 Dart 中使用 json_serializable 访问 json 中的嵌套对象