阻止MongoDB驱动程序具有MongoClientOptions
,其中包含客户端设置。
反应性驱动程序的MongoClients.create()
期望将MongoClientSettings
作为参数。
MongoClientOptions
中的大多数设置在MongoClientSettings
中具有相同的功能。
但是我在connectionsPerHost
中找不到MongoClientSettings
的替代项。
我想念什么吗?
答案 0 :(得分:2)
我认为,作为新MongoDB驱动程序设计的一部分,connectionsPerHost参数已更改为ConnectionPoolSettings.maxSize。请带一点盐,因为我还没有测试过它是否是完全等效的选择。
threadsAllowedToBlockForConnectionMultiplier
的描述如下,来自MongoClientSettings.getConnectionPoolSettings()Async驱动程序的MongoDB文档:
在设置对象中获取连接提供程序的设置。此设置对象包装minConnectionPoolSize,maxConnectionPoolSize,maxWaitTime,maxConnectionIdleTime和maxConnectionLifeTime的值,并使用maxConnectionPoolSize和threadsAllowedToBlockForConnectionMultiplier来计算maxWaitQueueSize。
在ConnectionPoolSettings.applyConnectionString()中可以观察到此行为:
maxWaitQueueSize(threadsAllowedToBlockForConnectionMultiplier * maxSize);
与原始MongoClientOptions.getThreadsAllowedToBlockForConnectionMultiplier()的描述相比,此行为似乎相似:
此乘数乘以connectionsPerHost设置,得出可以等待池中的连接可用的最大线程数。所有其他线程将立即获得异常。例如,如果connectionsPerHost为10,而threadsAllowedToBlockForConnectionMultiplier为5,则最多可以有50个线程等待连接。