MongoDB - MongoClientSettings 属性 弃用

MongoDB - MongoClientSettings property deprecation

我在我的 .NET Core 3.1 应用程序中配置了 MongoDb waitQueueMultiple 和 Mongo 连接字符串中的 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;

谢谢, 戴夫

我发现该文档正在四处挖掘。

这个 docs 来自 PyMongo,但我认为对 .NET 也可能有用:

  • waitQueueMultiple 已被弃用,没有替换。这个选项是一个糟糕的解决方案,因为它不会影响驱动程序其他部分的排队。

  • 一旦池达到其最大大小,其他线程必须等待套接字可用。 PyMongo 不限制可以等待套接字变为可用的线程数,应用程序有责任在负载高峰期间限制其线程池的大小以绑定队列。除非定义 waitQueueTimeoutMS,否则允许线程等待任何时间长度。

根据 csharp driver docs.

,waitQueueTimeout 的默认值为 2 分钟

所以在我的应用程序中,我提供了设置 MaxConnectionPoolSizeWaitQueueTimeout 的可能性。 如果未配置,应用程序将采用默认值。