The Java MongoDB driver is thread safe. If you are using in a web serving environment, for example, you should create a single Mongo instance, and you can use it in every request. The Mongo object maintains an internal pool of connections to the database (default pool size of 10).
开始每次访问db,都新建一个Mongo对象,结果服务器4g内存很快被占满。
查看了官网资料,建议一个项目用一个mongo单例。
改了程序,内存消耗稳定在2g左右。
mongodb是基于内存映射的,我特意用同一条查询sql查询一个collection的数据。按说内存中存在collection的映射,内存消耗就不应该增加了。但是每次访问都会导致内存增加。
即使我将collection做成单例的,内存消耗也还是上升。
不过将Mongo对象改成单例后,内存消耗会稳定在一个值。
看了有些大侠关于mongodb的评测,内存消耗和mongodb的池的并发量有关。
我觉得mongodb在内存使用上多少有点问题,猜测一个collection在内存中不是一个映射。
mongodb的连接池设置应该是在com.mongodb.Bytes类中设置的。
static final int CONNECTIONS_PER_HOST;
static
{
CONNECTIONS_PER_HOST = Integer.parseInt(System.getProperty("MONGO.POOLSIZE", "10"));
COLLECTION_REF_ID = new ObjectId(-1, -1, -1);
}
通过这一点,可以在程序中指定mongodb的连接池数量。System.setProperty("MONGO.POOLSIZE", "3");
至于是否有效果,能从变量值里看出来。
虽然Bytes.CONNECTIONS_PER_HOST是protect,但是com.mongodb.MongoOptions的变量connectionsPerHost是public,而在方法reset中被设值。
public void reset() {
this.connectionsPerHost = Bytes.CONNECTIONS_PER_HOST;
this.threadsAllowedToBlockForConnectionMultiplier = 5;
this.connectTimeout = 0;
this.socketTimeout = 0;
this.autoConnectRetry = false;
}
分享到:
相关推荐
这个“mongodbjar”通常指的是MongoDB的Java驱动程序的JAR文件,例如`mongodb-driver.jar`、`mongodb-driver-core.jar`和`bson.jar`等。这些JAR文件包含了所有必要的类和方法,使得Java开发者能够编写代码来连接到...
sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...
MongoDB客户端工具是用于与MongoDB数据库交互的软件应用程序,它们提供了一个图形用户界面(GUI)或者命令行工具,使得数据库管理员和开发人员能够更方便地执行查询、管理数据、监控性能以及执行备份和恢复操作。...
在Windows操作系统上,为了方便管理和操作MongoDB数据库,有许多客户端工具可供选择,其中之一便是免安装版的MongoDB Windows客户端。 这个“mongodb windows客户端-免安装版”是一款专为Windows用户设计的轻量级...
mongo-java-driver-3.4.3.jar 是 MongoDB 官方为 Java 开发者提供的 Java 驱动程序的一个特定版本(3.4.3)。这个 JAR 文件包含了与 MongoDB 数据库进行交互所需的类和接口,允许 Java 应用程序连接到 MongoDB 实例...
MongoDB客户端则是用于连接、管理、查询和操作MongoDB数据库的应用程序。在这个场景中,我们讨论的是一个特定的MongoDB客户端,它允许用户从MySQL数据库直接导入数据。 MongoDB客户端工具为开发人员和数据库管理员...
这个压缩包包含的就是Java连接MongoDB所需的驱动jar包,确保了开发者能够通过编程方式连接到MongoDB数据库并执行各种操作。 首先,让我们详细了解MongoDB数据库。MongoDB是一种NoSQL数据库,它不使用传统的关系型...
这个`mongodb.jar`文件正是Java MongoDB驱动程序的集合,包含了所有必要的类和库,使得Java应用程序能够连接到MongoDB服务器,执行CRUD(创建、读取、更新、删除)操作以及其他数据库管理任务。 MongoDB Java驱动...
6. 性能监控:实时展示MongoDB服务器的性能指标,如CPU使用率、内存使用情况、网络I/O等,帮助用户识别和解决问题。 7. 备份与恢复:提供备份和恢复功能,确保数据安全,可以在需要时快速恢复数据。 8. 用户管理:...
这里提到的"Java连接mongoDB需要的jar包(3.9.1)"是指Java开发者用于连接MongoDB数据库的一组关键库文件,包括`bson-3.9.1.jar`、`mongodb-driver-3.9.1.jar`和`mongodb-driver-core-3.9.1.jar`。这些JAR文件是...
MongoDB客户端,如RoBoMongo,是用于与MongoDB数据库交互的强大工具。MongoDB是一种流行的NoSQL数据库系统,以其灵活性、高性能和易于扩展性而受到许多开发者的喜爱。RoBoMongo(现更名为Studio 3T)是MongoDB的一款...
在Java中使用MongoDB客户端,首先需要引入MongoDB的Java驱动程序依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.mongodb <artifactId>mongodb-driver-sync <version>4.2.3...
在Java编程环境中,连接MongoDB数据库通常需要特定的驱动程序,这些驱动程序以JAR(Java Archive)文件的形式提供。MongoDB官方提供了Java驱动程序,使得开发者能够方便地在Java应用中集成MongoDB功能。本篇文章将...
8. **性能监控**:MongoVUE可以显示MongoDB服务器的运行状态,如CPU使用率、内存占用、连接数等,帮助用户监控数据库的性能和健康状况。 9. **版本兼容性**:MongoVUE通常会保持与最新MongoDB版本的兼容性,确保...
这个压缩包包含了三个核心的JAR文件,它们分别是`mongodb-driver-3.7.0.jar`、`mongodb-driver-core-3.7.0.jar`以及`bson-3.7.0.jar`,这些都是开发基于Java的MongoDB应用所必需的库。 首先,`mongodb-driver-3.7.0...
spring支持mongodb的jar包
MongoDB客户端工具则是用于管理和操作MongoDB数据库的重要辅助软件。在本篇中,我们将重点介绍"Mongodb客户端工具",特别是提到的"Mongobooster"。 **Mongobooster** Mongobooster是一款专为MongoDB设计的高效、...
亲测可用,解压包含三个jar包,引用时sources和doc包根据需要添加。 mongo-java-driver-3.5.0.jar; mongo-java-driver-3.5.0-javadoc.jar; mongo-java-driver-3.5.0-sources.jar;