我在JSP中使用MongoDB創建一個Web應用程序,它執行不同的操作,例如搜索,更新,刪除多個頁面。那麼我可以爲所有頁面創建一個單一的實例嗎?或者創建單個實例並在必要時調用它們?在效率和速度方面效率更高?如何訪問數據庫類實例?
0
A
回答
1
MongoClient
是一個連接池對象。您應該只創建一次並在整個應用程序中使用它。
甲MongoDB的客戶端與內部連接池。對於大多數應用程序,您應該爲整個JVM提供一個MongoClient實例。
如果需要更改池的大小使用MongoClientOptions.Builder
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
MongoClientOptions options = builder.connectionsPerHost(30).build();
MongoClient client = new MongoClient(new ServerAddress("localhost"), options);
一般頁數無關與我們創建連接的數量。
我們的服務器負載決定了我們應該使用多少個連接。在生產環境中,我們始終使用Connection Pool
。連接池是用於已經實例化的客戶端的存儲器,其管理這些客戶端的生命週期(實例化和處置)。客戶端對象是使用此池對象獲取的。池的大小取決於服務器上的負載。此處加載意味着應用程序在生產環境中每單位時間進行的數據庫調用次數。
2
在正式文件中http://mongodb.github.io/mongo-java-driver/3.2/driver/getting-started/quick-tour/
據說:
的MongoClient實例實際上代表到 數據庫連接池;即使有多個線程,您也只需要一個類MongoClient 的實例。
而且重要的是要注意的是:
通常只創建一個給定的 數據庫集羣一個MongoClient實例,並在您的應用程序中使用它。當創建 多個實例:每個MongoClient例如
所有資源使用限制(最大連接數等)申請
要處理一個實例,請確保調用MongoClient.close()清理資源
希望它有幫助!
相關問題
- 1. VPC無法訪問數據庫實例
- 2. 訪問類實例
- 3. 我應該如何訪問Perl子類中的實例數據?
- 4. 如何訪問類的目的實例並傳遞數據?
- 5. Android數據庫實例類
- 6. 如何訪問全局類實例?
- 7. 如何訪問類實例的屬性
- 8. 實時訪問數據庫
- 9. 如何訪問未映射爲實體類的數據庫表
- 10. 如何訪問數據庫
- 11. 無法從MBean訪問單例類的實例數據
- 12. Java主類實例訪問
- 13. 訪問子類實例
- 14. JSP訪問類實例
- 15. 訪問類實例變量
- 16. 如何訪問com.android.internal.telephony.gsm.GsmSmsDispatcher實例?
- 17. 如何從Avaya數據庫訪問和檢索實時數據?
- 18. 庫類如何實例化
- 19. 訪問aws實例上的mongodb數據
- 20. 如何從另一個函數訪問實例化類?
- 21. PDO無法訪問數據庫連接實例
- 22. 無法訪問生產實例上的數據庫
- 23. 訪問WSGI實例外的金字塔數據庫
- 24. 從EC2上的不同實例訪問mysql數據庫
- 25. RavenDB:在文檔轉換過程中訪問數據庫實例
- 26. 暫停對數據庫的訪問,而不是實例
- 27. 如何在實例形成另一個類時訪問超類的實例?
- 28. 如何從初始/實例化Form/Page訪問連接器/數據庫?
- 29. 如何從Pivotal Found Foundry應用程序訪問本地MYSQL數據庫實例?
- 30. 如何防止NHibernate訪問SQL Server數據庫實例中的死鎖?