MongoDB – Java | 如何管理连接

我正在使用带有Java的MongoDB,并且对我的连接有一些问题和疑问。 首先,我应该如何连接到Mongo? 我应该使用静态客户端并将其保持打开状态吗? 因为连接需要500ms。 因此,当用户需要数据时始终连接它并不是最好的主意,是吗?

但接下来的问题是。 当我执行一些查询时,我收到错误消息java.lang.IllegalStateException: The pool is closedjava.lang.IllegalStateException: state should be: open

那么,我应该如何管理我的整个MongoDB连接? 始终等待500毫秒是缓慢和重新启动服务器的方式,就像10个连接不是那么好。 还有其他好方法吗?

感谢您的帮助!

我该如何连接到Mongo?

听起来,你已经在使用MongoClient ,这是一个很好的方法。

MongoClient类设计为线程安全并在线程之间共享。 通常,您只为给定的数据库集群创建一个实例,并在整个应用程序中使用它。

我应该使用静态客户端并将其保持打开状态吗?

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

我是否需要明确关闭连接?

不,你没有。 而且那也应该解决你得到的错误。

这是使用MongoClient建立连接的快速导览 。