我很难理解getConnectionsPerHost()
和getMaxSize()
两种方法之间的区别
public int getConnectionsPerHost() 此MongoClient实例的每个主机允许的最大连接数。闲置时,这些连接将保留在池中。池耗尽后,任何需要连接的操作都将阻止等待可用连接。
默认值为100。
返回: 每个主机的连接池的最大大小
https://github.com/Azure/msphpsql/tree/PHP-7.0-Linux/CentOS7
public int getMaxSize()允许的最大连接数。闲置时,这些连接将保留在池中。池耗尽后,任何需要连接的操作都将阻止等待可用连接。
默认值为100。 http://api.mongodb.com/java/current/com/mongodb/MongoClientOptions.html#getConnectionsPerHost--
请详细说明如果getConnectionsPerHost()
等于10且getMaxSize()
等于10那么它意味着什么以及我们如何确保连接池是一个?以上任何一种方法是否描述
答案 0 :(得分:1)
getConnectionsPerHost() - 这表示与MongoClient相关的连接。
getMaxSize() - 这表示mongodb服务器的连接池大小。
通常,getConnectionsPerHost()可以小于或等于getMaxSize()。
具有内部连接池的MongoDB客户端(MongoClient)。对于大多数应用程序,您应该为整个JVM安装一个MongoClient实例。 http://api.mongodb.com/java/2.10.0/com/mongodb/MongoClient.html
MongoClient连接池 连接池是由驱动程序维护的数据库连接的缓存,以便在需要与数据库建立新连接时可以重用连接。要减少应用程序创建的连接池数量,建议调用MongoClient.connect一次,并重新使用数据库变量进行进一步的数据库操作。 https://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html
我们如何确保连接池是一个?以上任何一种方法是否描述了它?
上述方法中没有一个getConnectionsPerHost()或getMaxSize()不是单个连接池。
但是,对于数据库集群只有一个MongoClient并在整个应用程序中使用它是一个好习惯,因为MongoClient类设计为线程安全并在线程之间共享。
创建许多MongoClient实例时,请记住,每个MongoClient实例都应用所有资源使用限制(最大连接数等)并处理实例,请确保调用MongoClient.close()来清理资源