在实例化MongoCleint时,connectionsPerHost和maxSize返回10

时间:2016-06-29 07:12:50

标签: mongodb scala connection-pooling mongodb-java casbah

我正在使用casbah scala drvier for mongodb这是我如何创建MongoClient实例

val SERVER:ServerAddress = {

val hostName=config.getString("db.hostname")

val port=config.getString("db.port").toInt
        new ServerAddress(hostName,port)
          }

val DATABASE:String   = config.getString("db.dbname")

val connectionMongo = MongoConnection(SERVER)

当我在MongoClient实例的变量部分调试此行val connectionMongo = MongoConnection(SERVER)时,我看到ConnectionsPerHost等于10,而在Connectio Pool设置变量中我看到maxSize是10,所以我想要要知道它是什么意思?它的意思是我们有一个由MongoClient Instance创建的连接池,我们有10个连接吗?请解释一下,谢谢

getConnectionPerHost() http://api.mongodb.com/java/current/com/mongodb/MongoClientOptions.html#getConnectionsPerHost--

getMaxSize() http://api.mongodb.com/java/current/com/mongodb/connection/ConnectionPoolSettings.html#getMaxSize--

1 个答案:

答案 0 :(得分:0)

这是因为MongoClient创建了一个延迟填充的内部连接池。此池的默认大小为10.您必须在调试中看到该大小。您可能遇到的另一个观察是,尽管您只有1个连接,但您可能会在服务器日志中看到多个连接。另一个连接通常是池中的一个连接,它可以是您的驱动程序在DB上进行例行维护。