【问题标题】:MongoDB - Java | How to manage the connectionMongoDB - Java |如何管理连接
【发布时间】:2017-03-07 17:10:00
【问题描述】:

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

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

那么,我应该如何管理我的整个 MongoDB 连接内容?总是等待 500 毫秒是在 10 个连接不是很好之后减慢和重新启动服务器的方法。还有其他好的方法吗?

感谢您的帮助!

【问题讨论】:

  • 你在单身/静态MongoClient上打电话给close吗?通过多线程共享单个MongoClient 是安全的,MongoClient 实际上是您的连接池。但是,如果有人关闭此池,则会发生此异常。

标签: java mongodb


【解决方案1】:

我应该如何连接到 Mongo?

听起来,您已经在使用MongoClient,这是一个不错的选择。

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

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

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

Do I need to explicitly close connection?

No, you don't. 这也应该解决您遇到的错误。

这里是Quick Tour 使用 MongoClient 建立连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多