在MongoDB中使用UnifiedTopology为false的替代方法是啥,以便客户端重新连接回MongoDB服务器?
Posted
技术标签:
【中文标题】在MongoDB中使用UnifiedTopology为false的替代方法是啥,以便客户端重新连接回MongoDB服务器?【英文标题】:What are the alternatives to useUnifiedTopology as false, in MongoDB, so that the client reconnects back to MongDB Server?在MongoDB中使用UnifiedTopology为false的替代方法是什么,以便客户端重新连接回MongoDB服务器? 【发布时间】:2020-12-01 19:49:12 【问题描述】:目前 MongoDB 驱动程序有此弃用警告:
Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version
when the options are set to:
const client = new MongoClient(uri, useNewUrlParser: true, useUnifiedTopology: false );
如果我仍然继续使用相同的方法,当我遇到网络丢失和请求堆叠时会出现一些拓扑错误
我知道解决方法是保留useUnifiedTopology
true
,但我需要我的服务器重新连接到数据库以防网络丢失。否则我必须为每 1 或 2 次操作重新连接到数据库
【问题讨论】:
【参考方案1】:您是否注意到,当您使用统一的 Yopology 时,您使用的是两个连接而不是两个? mongodb cluster tiers cons 减少到它所说的一半是什么意思?
即。如果 M10 为您提供 1500 个缺点,如果设置为 true,您就可以拥有活跃用户...
【讨论】:
【参考方案2】:虽然我无法找到 useUnifiedTopology 选项的确切描述,但我在印象中除了release announcement 中提到的方面之外,它的作用是使节点驱动程序符合服务器发现、监控和选择各个方面的跨驱动程序规范。
对于当前问题,这意味着将 useUnifiedTopology 设置为 true 的节点驱动程序应该“正确”地自动监视部署(如各种驱动程序规范中所定义),在连接丢失时重新连接等。
我知道解决方法是保持 useUnifiedTopology 为真,但我需要我的服务器重新连接到数据库以防网络丢失。否则我必须为每 1 或 2 次操作重新连接到数据库
我会说您要么使用的是旧版/错误版本的驱动程序,要么您在应用程序中做错了什么。
另见Warning on Connecting to MongoDB with a Node server。
【讨论】:
其实MongoDB的这篇文档mongodb.github.io/node-mongodb-native/3.3/reference/…>另有说法。引用文档的最后一段The unified topology completely removes the disconnect handler, in favor of the more robust and consistent Retryable Reads and Retryable Writes features
谢谢,这绝对是我迄今为止看到的最好的描述。
我认为您还暗示该文件与我所说的内容相矛盾,这 - 再次,在我对事物的理解中 - 实际上并非如此,这与引用的文件可能导致的相反相信。
所以我建议你做的是 1) 使用统一拓扑,2) 如果你有问题,请创建一个清楚描述问题的新问题。以上是关于在MongoDB中使用UnifiedTopology为false的替代方法是啥,以便客户端重新连接回MongoDB服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何使`org.mongodb.driver.cluster`在spring boot中使用嵌入式mongodb?