生活随笔
收集整理的這篇文章主要介紹了
java操作mongodb(连接池)(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:?java操作mongodb(連接池)
?
Mongo的實例其實就是一個數據庫連接池,這個連接池里默認有10個鏈接。我們沒有必要重新實現這個鏈接池,但是我們可以更改這個連接池的配置。因為Mongo的實例就是一個連接池,所以,項目中最好只存在一個Mongo的實例。
常見的配置參數:
connectionsPerHost:每個主機的連接數
threadsAllowedToBlockForConnectionMultiplier:線程隊列數,它以上面connectionsPerHost值相乘的結果就是線程隊列最大值。如果連接線程排滿了隊列就會拋出“Out of semaphores to get db”錯誤。
maxWaitTime:最大等待連接的線程阻塞時間
connectTimeout:連接超時的毫秒。0是默認和無限
socketTimeout:socket超時。0是默認和無限
autoConnectRetry:這個控制是否在一個連接時,系統會自動重試
?
還有許多配置,可以參見mongodb的API。
?
下面看代碼:
[java]?view plain
?copy ?print? package?com.mongo.common;????import?java.net.UnknownHostException;????import?com.mongodb.DB;??import?com.mongodb.Mongo;??import?com.mongodb.MongoException;??import?com.mongodb.MongoOptions;????public?class?MongoManager?{??????private?final?static?String?HOST?=?"localhost";????private?final?static?int?PORT?=?27017;????private?final?static?int?POOLSIZE?=?100;????private?final?static?int?BLOCKSIZE?=?100;?????private?static?Mongo?mongo?=?null;????????private?MongoManager()?{?}????????static?{??????????initDBPrompties();??????}????????public?static?DB?getDB(String?dbName)?{??????????return?mongo.getDB(dbName);??????}????????????private?static?void?initDBPrompties()?{??????????????????try?{?????????????mongo = new MongoClient( HOST, PORT);????????????MongoOptions?opt?=?mongo.getMongoOptions();??????????????opt.connectionsPerHost?=?POOLSIZE;??????????????opt.threadsAllowedToBlockForConnectionMultiplier?=?BLOCKSIZE;??????????}?catch?(UnknownHostException?e)?{??????????}?catch?(MongoException?e)?{????????????}????????}??}??
使用的時候,如下所示:
[java]?view plain
?copy ?print? ????public?void?save(User?user)?throws?UnknownHostException?{??????????DB?myMongo?=?MongoManager.getDB("myMongo");??????????DBCollection?userCollection?=?myMongo.getCollection("user");????????????DBObject?dbo?=?(DBObject)?JSON.parse(user.toJson());??????????userCollection.insert(dbo);??????}??
?
轉載于:https://www.cnblogs.com/gaopeng527/p/5349445.html
總結
以上是生活随笔為你收集整理的java操作mongodb(连接池)(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。