【问题标题】:mongoDB utility classmongoDB 实用程序类
【发布时间】:2011-04-09 13:22:17
【问题描述】:

是否有一个“MongoUtil”类可以让我在多线程环境中获得新的连接(比如著名的HibernateUtil 类)?

谢谢

【问题讨论】:

    标签: java mongodb


    【解决方案1】:

    MongoDB Java 驱动程序在内部管理一个连接池(默认大小为 10)。可以是accessed from multiple threads concurrently

    通常的情况是你有一个 Mongo 类的实例,你的所有代码都使用它(它是线程安全的)。

    通常,每次数据库调用都会获得不同的连接,如果这是一个问题(因为您想一直与同一个节点通信),您也可以要求每次都获得相同的连接(@ 987654322@).

    如果您根本不想使用池,并获得“您自己的”连接,您可以创建一个新的 Mongo 实例。

    【讨论】:

    • 例如,我创建了一个 Mongo 的静态实例,我通过所有 DAO 共享它,然后我在 DAO 级别询问特定的数据库: DB db = MongoUtil.getInstance().getMongo.getDB (“数据库”); - 那么问题是我每次都必须对每个数据库实例进行用户身份验证(db.authenticate(用户名,密码))。这不是一个消耗资源的过程吗?
    • 不确定。我假设您只能对每个数据库进行一次身份验证。但这是一个罕见的用例。大多数用户在受信任的环境中无需身份验证即可运行 MongoDB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多