我在Tomcat 7上运行一个应用程序,在虚拟机上运行,只用于一个目的:分发照片。
初始化应用程序时,它与MongoDB连接如下:
//Create mongo reference
Mongo mongo = new Mongo(new MongoURI(url));
然后我将引用保留在内存中,然后像这样搜索照片:
//Update R/W Strategy
dbManager.setMongoReadWritePreferences(mongo, app);
//Use database dbname
DB db = mongo.getDB(dbname);
try {
db.requestStart();
db.requestEnsureConnection();
//Open gridFS connection
GridFS fs = new GridFS(db, GlobalConfig.GRIDFS_COLLECTION_BUCKET_BLOBS);
GridFSDBFile photos = fs.findOne(filename);
log.debug("[+]"+photos);
if (photos == null){
throw new Exception("[PHOTO_NOT_FOUND]");
} else {
return photos.getInputStream();
}
} finally {
//Request is finished
db.requestDone();
}
它运作良好。 (〜35ms,任何照片,70GB照片集)
我最近开始遇到没有返回照片的问题,以及监控图上的奇怪峰值:
流量不是很高,但它一直在做奇怪的事情,随机发送空白照片。
任何人都知道它会是什么?