gpt4 book ai didi

java - 如何在 Java 中使用 Mongodb 连接池

转载 作者:行者123 更新时间:2023-12-02 12:45:15 25 4
gpt4 key购买 nike

我在java中使用连接池。只是想确保我正确使用它。

所以,这是我的带有 getDatabase 方法的 mongoconnection 类。

public class MongoConnection {

private static MongoConnection mongoConnection = null;

public static MongoConnection getInstance() {

if (mongoConnection == null) {
mongoConnection = new MongoConnection();
}

return mongoConnection;
}

private MongoClient mongoClient = null;
private MongoDatabase mongoDatabase = null;

private MongoConnection() {
mongoClient = new MongoClient("localhost");
mongoDatabase = mongoClient.getDatabase("test");
}

public MongoDatabase getDatabase() {
return mongoDatabase;
}

}

这是使用它的代码片段。

public void insertCustomer(document){
MongoCollection<Document> collection =
MongoConnection.getInstance().getDatabase().getCollection("customers");
collection.insertOne(document);
}

inserCustomer 方法被多次调用。

仅此而已。

最佳答案

根据 MongoDB Java 驱动程序文档,数据库连接池是由 Mongo 对象神奇地处理的。

您应该使用单个 Mongo 对象(就像您所做的那样),这样它就会为您进行池化。但是,如果您确实使用多个对象,则需要显式调用 .close()。

因此,在您的情况下,创建了一个对象,我们重用它,并且该对象维护与 Mongo 服务器的一个连接。

您可以创建一个 Mongo Java 实例,它将维护一个内部连接池(默认大小为 10),并且它是隐藏的,您无需担心它。更多内容请查看.. http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency

实际上,我现在正在生产中运行它,没有出现任何问题。

来自:http://www.mongodb.org/display/DOCS/Java+Tutorial

The Mongo class is designed to be thread safe and shared among threads. Typically you create only 1 instance for a given DB cluster and use it across your app. If for some reason you decide to create many mongo intances, note that: all resource usage limits (max connections, etc) apply per mongo instance to dispose of an instance, make sure you call mongo.close() to clean up resources

关于java - 如何在 Java 中使用 Mongodb 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44785556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com