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
,否则允许线程等待任何时间长度。
,waitQueueTimeout 的默认值为 2 分钟
所以在我的应用程序中,我提供了设置 MaxConnectionPoolSize
和 WaitQueueTimeout
的可能性。
如果未配置,应用程序将采用默认值。
我在我的 .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
,否则允许线程等待任何时间长度。
所以在我的应用程序中,我提供了设置 MaxConnectionPoolSize
和 WaitQueueTimeout
的可能性。
如果未配置,应用程序将采用默认值。