私はTomcat7でアプリケーションを実行しており、仮想マシンで実行しています。これは、写真の配布という1つの目的を目的としています。
アプリケーションを初期化するとき、次のように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();
}
それは非常にうまく機能しています。(70GBの写真セットで、すべての写真で最大35ミリ秒)
最近、写真が返されないという問題が発生し始め、監視グラフに奇妙なピークが表示されました。
トラフィックはそれほど多くはありませんが、それは奇妙なことを続け、null写真をランダムに送信します。
誰もがそれが何であるかについての手がかりを持っていますか?