mongodb - MongoDB - MongoClientSettings 属性弃用
问题描述
我在我的 .NET Core 3.1 应用程序中配置了 Mongo 连接字符串中的 MongoDb waitQueueMultiple 和 maxPoolSize。
我想在连接字符串中MongoClientSettings
而不是在连接字符串中设置这些参数,但我从 2.12.3 版本的 MongoDb 中读到 waitQueueSize 将被弃用,我不明白替代方案是什么。
你有什么建议吗?
这就是我现在配置代码的方式:
var url = new MongoUrl(_mongoDbConfiguration.ConnectionString);
var settings = MongoClientSettings.FromUrl(url);
settings.MaxConnectionPoolSize = _mongoDbConfiguration.MaxPoolSize;
settings.WaitQueueSize = _mongoDbConfiguration.WaitQueueMultiple;
var client = new MongoClient(settings);
var database = client.GetDatabase(url.DatabaseName);
return database;
谢谢,戴夫。
解决方案
我发现该文档在四处挖掘。
该文档来自 PyMongo,但我认为对于 .NET 也可能有用:
waitQueueMultiple
已被弃用,无需更换。此选项对于设置排队上限是一个糟糕的解决方案,因为它不会影响驱动程序其他部分的排队。一旦池达到其最大大小,额外的线程必须等待套接字变得可用。PyMongo 不限制可以等待套接字可用的线程数,并且应用程序有责任在负载峰值期间限制其线程池的大小以绑定队列。
waitQueueTimeoutMS
除非已定义,否则允许线程等待任意时间长度。
根据csharp 驱动程序文档,waitQueueTimeout 的默认值为 2 分钟。
因此,在我的应用程序中,我可以设置MaxConnectionPoolSize
和WaitQueueTimeout
. 如果未配置,应用程序将采用默认值。
推荐阅读
- javascript - 观察一个元素有多少个子元素?
- antlr - ANTLR 使特定令牌或规则不区分大小写
- sql-server - 如何更正大量重复记录
- java - 如何从实时数据库中删除填充了对象的 Listview 中的重复项
- ios - 如何使用 Button 制作自定义视图
- powershell - 在2个列表中搜索匹配,性能升级powershell
- javascript - lit-element 的 JavaScript 导入在浏览器中给我 404 not found 错误
- javascript - 访问手表传感器
- c++ - C++ 序列点和 C++17 中评估顺序的更改
- python - 如何使用其他字段的值在 django 模型中创建字段?