java - mongo java驱动程序中的getConnectionsPerHost()和getMaxSize()方法有什么区别

标签 java mongodb mongodb-java

我很难理解 getConnectionsPerHost()getMaxSize() 这两种方法之间的区别

public int getConnectionsPerHost() The maximum number of connections allowed per host for this MongoClient instance. Those connections will be kept in a pool when idle. Once the pool is exhausted, any operation requiring a connection will block waiting for an available connection.

默认值为 100。

返回: 每个主机连接池的最大大小

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

public int getMaxSize()The maximum number of connections allowed. Those connections will be kept in the pool when idle. Once the pool is exhausted, any operation requiring a connection will block waiting for an available connection.

默认值为 100。 http://api.mongodb.com/java/current/com/mongodb/connection/ConnectionPoolSettings.html#getMaxSize--

请详细说明如果 getConnectionsPerHost() 等于 10 并且 getMaxSize() 等于 10 那么这意味着什么以及我们如何确保连接池是一吗?上述方法是否描述了它?

最佳答案

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() 来清理资源

关于java - mongo java驱动程序中的getConnectionsPerHost()和getMaxSize()方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38069854/

相关文章:

java - 当我在外部设备上运行应用程序时,为什么它给我的是 "unfortunatley <app name > has ended"

mongodb - 使用 MongoSpark 更新 mongoData

java - MongoDb Java 驱动程序 toJson() 和 $oid

java - commons-collections 和 commons-beanutils 中的重复类

使用红色蒙版创建的 java 缓冲图像

node.js - 用不同的值更新 mongoDB 中的许多文档

mongodb - 原子查询所有集合文档+观察进一步的更改

java - 如何获取结果作为值

Java toString() 使用反射?

javascript - JS访问mongoengine后端