[英]Connection pool for dynamic database connections
問題設置基於Web服務(Spring / Java,Tomcat7和MySql),其中每個用戶都有自己的數據庫,因此每個請求都需要自己的連接。 由於所有數據庫都是在運行時動態創建的,因此在啟動之前靜態配置它們不是一種選擇。
為了優化數據庫連接使用,數據庫連接池的實現會很棒,對吧?
使用Java / Spring:如何為動態數據庫創建連接池? 我對這里缺乏干凈的選擇感到震驚!
問題 : Tomcat的連接池 (據我所知也理解為C3P0 )將每個新的DataSource實例視為一個完整的新連接池 - > stack-reference
編輯
我相信HikariCP無需指定單個數據庫即可運行。
在運行時創建數據庫后,您還必須在運行時創建池。 我擔心彈簧基礎設施在這里沒有給你任何幫助,因為它是針對通常的靜態用例進行調整的。
我有一張泳池地圖:
映射<connectionUrlString,List <c3poPool >> map
這是一個低級解決方案。 如果您想更進一步,可以將此邏輯包裝到數據庫連接提供程序中,並將其注冊為“驅動程序”。 這樣,應用程序的任何部分都會請求新連接,您只需從現有池返回一個連接(如果請求了一個全新的連接,則為此創建一個新池)。
首先,對不起我的英語,我每天都在進步。
根據我的經驗,我有一個類似的情況,它是春天框架的決心。 讓我解釋一下你是如何解決這個問題的。
制作具有以下特征的spring配置文件:a)資源加載器:這一個負責從配置文件或數據庫加載屬性,這些屬性將適合建立數據庫連接。 b)使用您要加載的屬性參數化的池數據庫配置。
創建一個定位器類:在這個類中,你需要一個HashMap
使用spring的多上下文功能:想法是為您建立的每個連接分配一個代碼,然后像使用spring的應用程序上下文一樣加載該連接,然后在locator類中,將該上下文放入映射並將其作為頻繁使用如你所願。
我認為您按照這些步驟操作,可以根據需要創建動態池或數據庫連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.