我应该创建一次MongoClient吗?

时间:2018-05-07 12:05:25

标签: java mongodb

我正在开发一个用mongoDB与mongoDB java驱动程序连接的Java应用程序。首先,我与JDBC类似地创建了mongoDB连接类。这意味着在一个查询应用程序中创建了新连接并在关闭后。在每个查询中,我都会创建新的MongoClient。关闭之后。 但是很久以前在Mongo的记录中我读到了

  

MongoClient实例实际上表示与数据库的连接池;即使有多个线程,你也只需要MongoClient类的一个实例。

     

MongoClient.close()来清理资源

我正在使用servlet。这就是为什么我有多个线程(在每个线程中我创建新的MongoClient)。

如果我更改代码或者这些方法之间没有太大区别,谁能解释我?

1 个答案:

答案 0 :(得分:1)

该文档明确指出Mongo客户端是线程安全的,实际上是一个连接池。

您应该只创建一个Mongo客户端并在servlet中重用。

线程池初始化是一项密集型操作,因此您不应多次创建它们。