使用 Mongo Java 连接进行内存泄漏
我正在以以下方式构建MongoClient Connection:
public static synchronized MongoClient getInstance(String mongoDbUri) {
try {
// Standard URI format: mongodb://[dbuser:dbpassword@]host:port/dbname
if( mongoClient == null ){
mongoClient = new MongoClient(
new MongoClientURI(mongoDbUri));
}
} catch (Exception e) {
log.error(
"Error mongo connection : ",
e.getCause());
}
return mongoClient;
}
在运行多个事务的一段时间内,我看到一些内存与未被释放的应用程序一起占用。
当分析堆转储时,看到类的内存消耗最大
com.mongodb.internal.connection.PowerOfTwoBufferPool
mongo 客户端正在尝试连接到 mongos 实例。应用程序在 3 个分片上有 3 个副本集和一个配置服务器来保存元数据。
为了添加更多细节,我有一个用@Component注释的弹簧管理豆。对于调用上述方法的 bean,有一个带有@PostConstruct的注释。在春季课程中,我们使用Mongo客户端。insert/update/create
谢谢。