Mongo Scala Driver如何正确配置连接池大小?
解决Mongo Scala Driver连接池大小配置的错误
嘿,这个问题我之前刚踩过坑!你碰到的错误是因为调用ConnectionPoolSettings.Builder的方式不对——maxSize是它的实例方法,不能直接通过ConnectionPoolSettings.Builder这个object来调用,得先拿到它的实例才行。
正确的配置逻辑是:在applyToConnectionPoolSettings的lambda参数里,会传入一个ConnectionPoolSettings.Builder的实例,你直接在这个实例上调用maxSize方法就可以了。
修正后的完整代码如下:
import com.mongodb.client.MongoClient import com.mongodb.client.MongoClients import com.mongodb.connection.ConnectionPoolSettings import com.mongodb.ServerAddress import com.mongodb.MongoClientSettings val settings: MongoClientSettings = MongoClientSettings.builder() .applyToConnectionPoolSettings { poolBuilder: ConnectionPoolSettings.Builder => poolBuilder.maxSize(100) // 调用Builder实例的maxSize方法设置连接池上限 } .applyToClusterSettings { clusterBuilder => clusterBuilder.hosts(List(new ServerAddress("localhost")).asJava) .description("Local Server") } .build() val mongoClient: MongoClient = MongoClients.create(settings)
顺便补充两个小提示:
- 如果需要配置更多连接池参数(比如最小连接数、最大等待时间),都可以在这个
poolBuilder实例上链式调用对应方法,比如poolBuilder.minSize(10).maxWaitTime(30, TimeUnit.SECONDS) - 确保导入的包都是正确的,别和旧版本的Mongo驱动包混淆了
内容的提问来源于stack exchange,提问作者sarah w
相关产品推荐
相关产品推荐

